【问题标题】:Win form DataGridView dynamically adding button columnWin窗体DataGridView动态添加按钮列
【发布时间】:2009-06-08 09:52:11
【问题描述】:

我想在填充后将一个按钮列动态添加到 DataGridView。 添加后按钮列可见,但是当我尝试遍历 DataGridView 行时,每个单元格中的按钮都为空。

var buttonCol = new DataGridViewButtonColumn();
buttonCol.Name = "ButtonColumnName";
buttonCol.HeaderText = "Header";
buttonCol.Text = "Button Text";

dataGridView.Columns.Add(buttonCol);

foreach (DataGridViewRow row in dataGridView.Rows)
{
    var button = (Button)row.Cells["ButtonColumnName"].Value;
    // button is null here!
}

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    我不久前尝试了完全相同的方法,但无法正常工作;我的解决方案(因为它只是一个测试应用程序)是更改纽扣电池的背景颜色并进行测试。相当可怕。但是,回顾一下代码 - 您是否尝试将 row.Cells["ButtonColumnName"] 转换为 DataGridViewButtonCell,然后检查其属性?

    【讨论】:

      【解决方案2】:

      使用这个:

      foreach (DataGridViewRow row in dataGridView.Rows) 
      { 
          // DataGridViewButtonCell button = (row.Cells["ButtonColumnName"] as DataGridViewButtonCell); 
          row.Cells["ButtonColumnName"].Value = "ButtonText";
      } 
      

      【讨论】:

        【解决方案3】:

        您必须在代码中添加波纹管代码,然后您可以在每个按钮上看到“按钮文本”:

        buttonCol.UseColumnTextForButtonValue = true;
        

        【讨论】:

          【解决方案4】:

          【讨论】:

            【解决方案5】:

            使用

            foreach (DataGridViewRow row in dataGridView.Rows)
            {
                DataGridViewButtonCell button = (row.Cells["ButtonColumnName"] as DataGridViewButtonCell);        
            }
            

            【讨论】:

              猜你喜欢
              • 2012-05-13
              • 2014-10-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-11-30
              • 2021-08-03
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多