向 DataGridView动态添加字段,并将新的字段放在已存在字段中间位置

说明:动态添加字段,放置于DataGridView已存在字段的中间部位,比如目前已经有两个字段 ID,Name,那么再增加一个Age字段,此时Age显示的位置在ID与Name中间。文中有部分代码是结合其他博主的资料,谢谢提供。

  1. 创建一个窗体项目,添加一个dgv,button,textbox控件
    在这里插入图片描述
  2. 代码片段
private void TESTDGV_Load(object sender, EventArgs e)
{
     dataGridView1.DataSource = CreateTable();
 }
 private DataTable CreateTable()
 {
     DataTable dt = new DataTable();                         //创建一个空表
     DataColumn column = new DataColumn();                    //创建一个空列     
     column.DataType = System.Type.GetType("System.Int32");
     column.ColumnName = "id";
     dt.Columns.Add(column);
     column = new DataColumn();
     column.DataType = Type.GetType("System.String");
     column.ColumnName = "Name";
     dt.Columns.Add(column);
     column = new DataColumn();
     column.DataType = Type.GetType("System.Int32");
     column.ColumnName = "Age";
     dt.Columns.Add(column);

     DataRow row = dt.NewRow();                              //创建行
     row["id"] = 0;
     row["Name"] = "张三";
     row["AGE"] = 118;
     dt.Rows.Add(row);                                       //显示
     return dt;

 }
 private void button1_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(this.textBox1.Text))
     {
         DataGridViewComboBoxColumn column1 = new DataGridViewComboBoxColumn();
         column1.Name = this.textBox1.Text;
         column1.DataPropertyName = this.textBox1.Text;//对应数据源的字段
         column1.HeaderText = this.textBox1.Text;
         column1.Width = 80;
         this.dataGridView1.Columns.Add(column1);

         if (dataGridView1.Columns.Count % 2 == 0)
         {
             column1.DisplayIndex = (dataGridView1.Columns.Count / 2) - 1;
         }
         else
         {
             column1.DisplayIndex = ((dataGridView1.Columns.Count + 1) / 2) - 1;
         }

         dataGridView1.Refresh();
     }
     else
     {
         MessageBox.Show("未输入添加列名!");
     }
 }
  1. 结果示意
    在这里插入图片描述
    不足的地方就是,没有实现添加一个下拉字段的时候,赋值下拉选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值