自定义DataGridView的问题 我现在自定义了一个DataGridViewColumn(继承DataGridViewTextBoxColumn),但是我想让DataGridView绑定数据时自动使用我自定的列,怎么让我的自定列为默认的列呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 绑定数据后,它就会把你自定义的列给覆盖了你只能是,先数据绑定,然后在给相应的列设置DataGridViewColumn属性 绑定后怎么设DataGridViewColumn属性呢? MS得绑定前先设置好 DataTable dt = new DataTable(); dt.Columns.Add("test", typeof(string)); DataGridViewColumn tb = new DataGridViewColumn();//这里换成自定义的DataGridViewColumn tb.Name = "test"; tb.DataPropertyName = "test";//字段 this.dataGridView2.Columns.Add(tb); dataGridView2.DataSource = dt; private void SetupDataGridViewColumns() { //设置datagrid不自动生成列 dgvCustomDoctor.AutoGenerateColumns = false; //定制ID列 DataGridViewTextBoxColumn idColumn = new DataGridViewTextBoxColumn(); idColumn.HeaderText = "编号"; idColumn.DataPropertyName = "id";//与ID数据成员映射 idColumn.ReadOnly = true;//是否只读 idColumn.Width = 80;//列宽度 //将列添加到DataGridView中 dgvCustomDoctor.Columns.Add(idColumn); //定制Name列 DataGridViewTextBoxColumn nameColumn = new DataGridViewTextBoxColumn(); nameColumn.HeaderText = "姓名"; nameColumn.DataPropertyName = "name"; nameColumn.Width = 100; //该列添加到DataGridView dgvCustomDoctor.Columns.Add(nameColumn); //定制科室office列 //DataGridViewCheckBoxColumn 复选框列 //DataGridViewImageColumn 图片列 DataGridViewComboBoxColumn officeColum = new DataGridViewComboBoxColumn(); officeColum.DataSource = ds.Tables["office"].DefaultView; officeColum.DisplayMember = "name";//显示科室名称 officeColum.ValueMember = "id";//科室对应的ID officeColum.DataPropertyName = "office"; officeColum.ValueType = typeof(string); officeColum.Width = 150; //该列添加到DataGridView dgvCustomDoctor.Columns.Add(officeColum); }仔细看一下,希望对你有所帮助n_n 菜鸟求救,窗体间传值问题 winform 的comboBox绑定问题 很诡异的画图板问题,你遇到过吗? 上面代码应该怎样创建对象的实例?? 【50分】编译IL代码的问题 DataAdapter.Update() 能比能一次更新多个表??? datagrid怎样滚动到选中行? 今天被一個dotnet的運算規則引起的錯誤﹐搞了半天才明白﹐特貼出來告訴大家﹐以免大家走我一樣的彎路 clr里能读写文件吗? 在网络程序钟,怎么获取发给我信息的ip地址 Word中指定位置插入图片怎么办? 动态生成了几个dropdownlist控件是横排显示的,怎么能每个控件放一行?
你只能是,先数据绑定,然后在给相应的列设置DataGridViewColumn属性
DataTable dt = new DataTable();
dt.Columns.Add("test", typeof(string));
DataGridViewColumn tb = new DataGridViewColumn();//这里换成自定义的DataGridViewColumn
tb.Name = "test";
tb.DataPropertyName = "test";//字段
this.dataGridView2.Columns.Add(tb);
dataGridView2.DataSource = dt;
{
//设置datagrid不自动生成列
dgvCustomDoctor.AutoGenerateColumns = false;
//定制ID列
DataGridViewTextBoxColumn idColumn = new DataGridViewTextBoxColumn();
idColumn.HeaderText = "编号";
idColumn.DataPropertyName = "id";//与ID数据成员映射
idColumn.ReadOnly = true;//是否只读
idColumn.Width = 80;//列宽度
//将列添加到DataGridView中
dgvCustomDoctor.Columns.Add(idColumn); //定制Name列
DataGridViewTextBoxColumn nameColumn = new DataGridViewTextBoxColumn();
nameColumn.HeaderText = "姓名";
nameColumn.DataPropertyName = "name";
nameColumn.Width = 100;
//该列添加到DataGridView
dgvCustomDoctor.Columns.Add(nameColumn); //定制科室office列
//DataGridViewCheckBoxColumn 复选框列
//DataGridViewImageColumn 图片列
DataGridViewComboBoxColumn officeColum = new DataGridViewComboBoxColumn();
officeColum.DataSource = ds.Tables["office"].DefaultView;
officeColum.DisplayMember = "name";//显示科室名称
officeColum.ValueMember = "id";//科室对应的ID
officeColum.DataPropertyName = "office";
officeColum.ValueType = typeof(string);
officeColum.Width = 150;
//该列添加到DataGridView
dgvCustomDoctor.Columns.Add(officeColum);
}
仔细看一下,希望对你有所帮助n_n