如何为DataGridView创建RowHeadersVisible更改事件?

时间:2014-08-27 14:17:26

标签: c# winforms datagridview datagridrowheader

我有一个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”。
那么如何解决这个问题呢?

1 个答案:

答案 0 :(得分: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;
}