c#创建自定义控件 - DataGridView Checkbox列

时间:2017-06-08 14:44:57

标签: c# winforms datagridview controls add

我正在尝试从dataGridView创建一个包含checkboxcolumn的自定义控件。我添加了代码来生成它,并在新项目中将新创建的checkBoxDataGridView添加到我的表单中。

我有两个问题:

1。当我在设计时打开并关闭包含新checkBoxDataGridView的表单时,第二次添加该列。您将在我的代码中看到我已尝试多次检查,现在已注释掉,因此它不会在设计时第二次或多次添加列。也只需要在设计时添加它,如果我检查它是否已经添加,我想这没问题。

2. 复选框列不会实例化我在控件类中给出的名称。例如: col.Name =“dgvTickCol”

    public class CheckBoxDataGridView : DataGridView
    {          
        public CheckBoxDataGridView()
        {          
            AddCheckColumn();
        }

        private void AddCheckColumn()
        {
            //if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)                
            //if (!Columns.Contains("dgvTickCol"))                
            //if (this.Rows[0].Cells["dgvTickCol"].Value != null)
            //if (this.Rows[0].Cells["dgvTickCol"].ColumnIndex == -1)
            //{
                DataGridViewColumn col = new DataGridViewCheckBoxColumn();            
                col.Name = "dgvTickCol";
                col.HeaderText = "";
                col.SortMode = DataGridViewColumnSortMode.NotSortable;
                Columns.Add(col);            
            // }

    }
}

0 个答案:

没有答案