我现在自定义了一个DataGridViewColumn(继承DataGridViewTextBoxColumn),但是我想让DataGridView绑定数据时自动使用我自定的列,怎么让我的自定列为默认的列呢?

解决方案 »

  1.   

    绑定数据后,它就会把你自定义的列给覆盖了
    你只能是,先数据绑定,然后在给相应的列设置DataGridViewColumn属性
      

  2.   

    绑定后怎么设DataGridViewColumn属性呢?
      

  3.   

    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;
      

  4.   

      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