winform下 的DataGridView动态添加列
大概是下面这个效果
  单位
  千克{下拉选择}  |   
  吨
  升
当选择“升”为单位的时候动态在“单位”列后面添加一个新列“密度”

解决方案 »

  1.   

    始终有这列,平时隐藏,选择“升”为单位的时候显示
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  2.   

    什么意思??动态添加列??
    简单的办法,绑定之前,先给你的DataTable添加列,然后再绑定。
      

  3.   

    这样??
            private void dataGridView4_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                if (dataGridView4.CurrentCell != null && dataGridView4.CurrentCell.Value.ToString() == "升")
                {
                    if (!dataGridView4.Columns.Contains("密度"))
                        dataGridView4.Columns.Add("密度", "密度");
                }
                else
                {
                    if (dataGridView4.Columns.Contains("密度"))
                        dataGridView4.Columns.Remove("密度");
                }
            }
      

  4.   

    dataGridView1.Columns.Add("列名", "列名显示");
      

  5.   

    用显示隐藏比较好,添加删除的话数据会丢。
            private void dataGridView4_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                if (dataGridView4.CurrentCell != null && dataGridView4.CurrentCell.Value.ToString() == "升")
                {
                    //if (!dataGridView4.Columns.Contains("密度"))
                    //     dataGridView4.Columns.Add("密度", "密度");
                    dataGridView4.Columns["密度"].Visible = true;
                }
                else
                {
                    if (dataGridView4.Columns.Contains("密度"))
                        //dataGridView4.Columns.Remove("密度");
                        dataGridView4.Columns["密度"].Visible = false;
                }
            }
      

  6.   

     private void dataGridView4_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                if (dataGridView4.CurrentCell != null && dataGridView4.CurrentCell.Value.ToString() == "升")
                {
                    //if (!dataGridView4.Columns.Contains("密度"))
                    //     dataGridView4.Columns.Add("密度", "密度");
                    dataGridView4.Columns["密度"].Visible = true;
                }
                else
                {
                    if (dataGridView4.Columns.Contains("密度"))
                        //dataGridView4.Columns.Remove("密度");
                        dataGridView4.Columns["密度"].Visible = false;
                }
            }
      

  7.   

      private void dataGridView4_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
              if(dataGridView4.CurrentCell !!= null )
               {
                if ( dataGridView4.CurrentCell.Value.ToString() == "升")
                {
                    //if (!dataGridView4.Columns.Contains("密度"))
                    //     dataGridView4.Columns.Add("密度", "密度");
                    dataGridView4.Columns["密度"].Visible = true;
                }
                else
                {
                    if (dataGridView4.Columns.Contains("密度"))
                        //dataGridView4.Columns.Remove("密度");
                        dataGridView4.Columns["密度"].Visible = false;
                }
              }
            }
      

  8.   

    上面是对的不然初始化的时候会报null错误
      

  9.   

    dataGridView4.CurrentCell=dataGridView4.currentrow[0];
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  10.   

    请问诸位,有datagridview有Columns属性吗?