【问题标题】:Custom DataGridView adds columns every time I build每次构建时,自定义 DataGridView 都会添加列
【发布时间】:2014-01-30 02:23:29
【问题描述】:

我正在编写一个继承的DataGridView 控件,默认情况下它将有两列。 DGV 位于用户控件 GeneralTabPanel 上,该控件继承自 MainTabPanel,而 MainTabPanel 继承自 UserControl。原因是MainTabPanel 包含每个继承面板都必须覆盖的虚函数。

问题是每当我在 Designer 中查看 GeneralTabPanel 并点击 Build 时,Visual Studio Express 2013 将在 Designer 中生成两列并将它们添加到 DGV。

SuperDataGridView

using System.Windows.Forms;

namespace AnyGameEngineEditor {

    public class SuperDataGridView : DataGridView {

        public SuperDataGridView () {
            this.ColumnCount = 2;
        }
    }
}

GeneralTabPanel

namespace AnyGameEngineEditor {
    public partial class GeneralTabPanel : MainTabPanel {

        public GeneralTabPanel () {
            InitializeComponent ();
        }

    }
}

MainTabPanel

using System.Windows.Forms;

namespace AnyGameEngineEditor {
    public partial class MainTabPanel : UserControl {
        public MainTabPanel () {
            InitializeComponent ();
            this.Dock = DockStyle.Fill;
        }

    }
}

这是我可以用 VS2013 Express 在我的机器上重现该问题的准系统。这是如何重现(我还没有在另一台机器上实际测试过):

  1. 创建一个新的 Windows 窗体项目。
  2. 将这三个文件复制到根文件夹中。
  3. 在设计器中打开GeneralTabPanel
  4. 打开 GeneralTabPanel 的 Designer .cs 文件。
  5. 构建项目。
  6. .cs 文件底部应该有两个新的DataGridViewTextBoxCell 变量。
  7. 保存项目并重新构建,现在底部应该还有两个变量。
  8. 重复 5-7 直到您确信发生了一些有趣的事情。

我发现如果我注释掉MainTabPanel 中的Dock 行,就不会发生这种情况。

所以最终我的问题是为什么会发生这种情况?

【问题讨论】:

  • 如果您对this.ColumnCount = 2; 行发表评论或给columncount 提供其他号码会发生什么
  • @gmailuser 该数字决定了每个构建添加了多少列。如果我注释掉该行,加上它下面的行由于空异常,那么网格将有零列。我需要网格总是有两列。
  • 我的意思是说更改值只是为了调试目的。例如。如果您分配 3 列,是否会发生同样的事情。
  • @gmailuser 是的,这就是我在评论中的意思。

标签: c# winforms datagridview visual-studio-2013


【解决方案1】:

AutoGenerateColumns 设置为 false。

【讨论】:

    【解决方案2】:

    每次打开表单时清除datagridview怎么样? Form1.DataGridView1.Columns.Clear()

    【讨论】:

      猜你喜欢
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多