0

我有一个 Windows 窗体、DataGridView 和两个按钮。
当我按下 button1 时,它会将 RowHeadersVisible 的值更改为 true。
当我按下 button2 时,它会将 RowHeadersVisible 的值更改为 false。

    public Form1()             
    {             
        InitializeComponent();         


        dataGridView1.RowHeadersVisible = false;
    }  

    private void button1_Click(object sender, EventArgs e)
    {
        dataGridView1.RowHeadersVisible = true;
    }
    private void button2_Click(object sender, EventArgs e)
    {
        dataGridView1.RowHeadersVisible = false;
    }   

我在“DataGridView”类中找不到任何关于“RowHeadersVisible”值变化的事件。正如我提到的,“CellFormatting”事件适用于这个动作,但它经常出现,几乎适用于 datagridview1 中的所有类型的动作。
我认为我们可能会创建一个自定义事件处理程序以做出不同的决定。
当“RowHeadersVisible”将值更改为 false 时,我需要在“CustomEvent”中调用另一个函数。

    private void CustomEvent(object sender, EventArgs e)
    {
         SomeFunction();
    }

另一方面,“DataGridTableStyle”类具有事件“RowHeadersVisibleChanged”。
那么如何解决这个问题呢?

4

1 回答 1

0

.NET 4.5,你应该得到帮助。用以下方法溶解。

表示System.Windows.Forms.DataGrid控件在运行时绘制的表格。

// Instantiate the EventHandler. 
public void AttachRowHeaderVisibleChanged()
{
   myDataGridTableStyle.RowHeadersVisibleChanged += new EventHandler (MyDelegateRowHeadersVisibleChanged);
}

// raise the event when RowHeadersVisible property is changed. 
private void MyDelegateRowHeadersVisibleChanged(object sender, EventArgs e)
{
   string myString = "'RowHeadersVisibleChanged' event raised, Row Headers are";
   if (myDataGridTableStyle.RowHeadersVisible)
      myString += " visible";
   else
      myString += " not visible";

   MessageBox.Show(myString, "RowHeader information");
}

// raise the event when a button is clicked. 
private void myButton_Click(object sender, System.EventArgs e)
{
   if (myDataGridTableStyle.RowHeadersVisible)
      myDataGridTableStyle.RowHeadersVisible = false;
   else
      myDataGridTableStyle.RowHeadersVisible = true;
}
于 2014-08-29T18:49:35.620 回答