首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义DataGridView每次生成时都会添加列

自定义DataGridView每次生成时都会添加列
EN

Stack Overflow用户
提问于 2014-01-30 02:23:29
回答 2查看 416关注 0票数 2

我正在编写一个继承的DataGridView控件,默认情况下它将有两列。DGV生活在一个用户控件GeneralTabPanel上,它继承了从MainTabPanel继承而来的UserControl。原因是MainTabPanel包含每个继承面板都必须重写的虚拟函数。

问题是,每当我查看设计器中的GeneralTabPanel并点击Build,Visual 2013将在设计器中生成两列并将它们添加到DGV中。

SuperDataGridView

代码语言:javascript
复制
using System.Windows.Forms;

namespace AnyGameEngineEditor {

    public class SuperDataGridView : DataGridView {

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

GeneralTabPanel

代码语言:javascript
复制
namespace AnyGameEngineEditor {
    public partial class GeneralTabPanel : MainTabPanel {

        public GeneralTabPanel () {
            InitializeComponent ();
        }

    }
}

MainTabPanel

代码语言:javascript
复制
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. 为.cs打开设计器GeneralTabPanel文件。
  5. 建造这个项目。
  6. DataGridViewTextBoxCell文件的底部应该有两个新的.cs变量。
  7. 保存项目和重建,两个变量现在应该在底部。
  8. 重复5-7,直到你确信发生了什么有趣的事情。

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

所以,最终我的问题是,为什么世界上会发生这种事?

EN

回答 2

Stack Overflow用户

发布于 2014-01-30 02:41:43

AutoGenerateColumns设置为false。

票数 0
EN

Stack Overflow用户

发布于 2014-01-30 02:42:29

每次打开表单时,如何清除数据视图?Form1.DataGridView1.Columns.Clear()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21446678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档