C#事件名称为空

时间:2017-10-17 19:55:09

标签: c# events

我有一个WinForms应用程序,其中我的主应用程序有一个单独的类,它是解决方案的一部分。在使用Dev Express按钮定义User控件的类中,我已经定义了我的事件委托,事件,方法和事件标记。

在主程序中,我定义了我的听众。

我在事件方法中得到一个空值,但看不清楚原因。我已经多次审查了这个问题,据我所知,这是完全正确的。

我将不胜感激任何有用的评论/更正。

这是我班上的代码。

public partial class XtraUserControl1 : XtraUserControl, IAnyControlEdit
{
    public delegate void ButtonClickedEventHandler(object sender, ClickEventArgs e);
    public event ButtonClickedEventHandler ButtonClicked;

    public XtraUserControl1()
    {
        InitializeComponent();
    }

    public void OnButtonClicked(ClickEventArgs e)
    {
        if (ButtonClicked != null)
        {
            ButtonClicked(this, e);
        }
    }

    public class ClickEventArgs : EventArgs
    {
        public readonly SimpleButton buttonClicked;
        public ClickEventArgs(SimpleButton button)
        {
            this.buttonClicked = button;
        }
    }

这是我定义监听器的主要代码。

private void frmEHHeaders_Load(object sender, EventArgs e)
{
    // Create the button group from the User Control XtraUserControl1  and add it to the grid repository
    btnGroup  = new User_Controls.XtraUserControl1();
    RepositoryItemAnyControl riAny = new RepositoryItemAnyControl();
    riAny.Control = btnGroup;
    grdEHHeaders.RepositoryItems.Add(riAny);
    colButtons.ColumnEdit = riAny;

    // Add event handlers
    this.grdEHHeaders.Views[0].MouseDown += gridView1_MouseDown;
    gridView1.CustomRowCellEdit += GridView1_CustomRowCellEdit;

    // Listener for the button class
    btnGroup.ButtonClicked += new User_Controls.XtraUserControl1.ButtonClickedEventHandler(btnGroup_ButtonClicked);
    GetData();
}




private void btnGroup_ButtonClicked(object sender, User_Controls.XtraUserControl1.ClickEventArgs e )
{
    SimpleButton myButton = e.buttonClicked;
    MessageBox.Show("You clicked " + myButton.Text);
}

0 个答案:

没有答案