我目前正在开发一个 MultiColumnComboBox,其中包含一个 DataGridView 作为 DropDownControl。我找到了https://www.codeproject.com/Articles/25471/Customizable-ComboBox-Drop-Down并将其用作父类。
这是本准则的重要部分。
命名空间 GUILib { 部分类 MultiColumnDropDown { ... [ 可浏览(真), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), TypeConverterAttribute(typeof(System.ComponentModel.ExpandableObjectConverter)) ] 公共 System.Windows.Forms.DataGridView 数据网格 { 得到 { 返回数据网格视图1; } 放 { dataGridView1 = 值; } } ... #region Vom Komponenten-Designer 生成器代码 /// /// Erforderliche Methode für die Designerunterstützung。 /// Der Inhalt der Methode darf nicht mit dem 代码编辑器 geändert werden。 /// 私人无效初始化组件() { this.dataGridView1 = new System.Windows.Forms.DataGridView(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); this.SuspendLayout(); // // 数据网格视图1 // this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView1.Location = new System.Drawing.Point(0, 0); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.Size = new System.Drawing.Size(240, 150); this.dataGridView1.TabIndex = 0; ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); this.ResumeLayout(false); } #endregion 私有 System.Windows.Forms.DataGridView dataGridView1; } }
我的问题是当我将此自定义控件添加到表单时,我可以更改数据网格的每个属性,但列除外。当我尝试通过单击带有三个点的按钮来修改列时,我会收到错误消息:
翻译它是“对象引用未设置为对象的实例”。如果我将在代码中添加列(multiColumnDropDown1.datagrid.Columns.Add),则在运行时添加列。
有人可以告诉我我在哪里犯了错误吗?
问候迈克尔
PS对不起我的英语不好,我希望有人能理解我的意思并能帮助我。