从基类控制事件

时间:2018-07-07 07:46:21

标签: c# .net

我在几种形式上都有几种DataGridView。当用户选择行时,它将显示一些数据/结果,但是有条件。如果该条件通过,则仅显示结果。

我可以检查每个DataGridView的每个事件的状况。但是我通过继承DataGridView来创建自定义控件。并且要对基类进行状态检查。如果条件在基类上传递,则将触发子类的事件,否则将阻止或不通过事件触发。

在这种情况下,我也可以编写单独的事件,但是作为学习或资助,我希望了解实际事件。

谢谢。

/*Inherited base Class*/
public partial class MyDataGridView : DataGridView
{
  public bool ShowData = new bool();
  public new event System.EventHandler SelectionChanged;

  public CustomDataGridView()
  {
     InitializeComponent();
  }

  protected override void SelectionChanged(object sender, EventArgs e)
  {
     if(ShowData)
     {
       //Want to raise/pass/trigger event on child class
       if (this.SelectionChanged != null) this.SelectionChanged(sender, e);
     }
     else
     {
       //Do not want to raise/pass/trigger event on child class
     }
  }

}


/*On Win Form*/
public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();
  }

  private void MyDataGridView1_SelectionChanged(object sender, EventArgs e)
  {
    MessageBox.Show("My Result........");
  }
}

0 个答案:

没有答案