如何在自定义BindingNavigator中向我的按钮添加新的eventHandler?

时间:2019-05-01 08:00:55

标签: c# winforms bindingnavigator toolstripitem

因此,我创建了一个自BindingNavigator继承的自定义类MyToolBar。我也设法将此类添加到ToolBox中。现在,我可以(我想)将我的工具栏添加到许多表单上,并且只在一个位置更改工具栏的代码。

我试图将EventHadler添加到我的自定义按钮中。它没有用,所以我也尝试将hadlers添加到默认按钮(MoveNext,AddNew等按钮)中。但是似乎编译器看不到我的事件,尽管在调试时有一个按钮记录了有关我的eventHandler的记录。 (如果将此类放在Form1.cs中,但不在单独的CS文件中,则我的处理程序也可以工作)

MyToolBar.cs如下:

public class MyToolBar : BindingNavigator
{
    private ToolStripButton DataGrid_ToolstripMoveNext = new ToolStripButton();
    private ToolStripButton toolStripButton1 = new ToolStripButton();
    System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));

    public override void AddStandardItems()
    {
        this.Items.AddRange(new ToolStripItem[] { DataGrid_ToolstripMoveNext, toolStripButton1 });
    }

    private void OnClick(object sender, EventArgs e)
    {
        // here is some code that doesn't execute
    }
    public MyToolBar()
    {
        // Default button
        DataGrid_ToolstripMoveNext.Name = "DataGrid_ToolstripMoveNext";
        DataGrid_ToolstripMoveNext.Text = "Move next";
        DataGrid_ToolstripMoveNext.MouseHover += new EventHandler((sender, e) => //code that doesn't work either);

        // My custom button
        toolStripButton1.Name = "DataGrid_MyButton";
        toolStripButton1.Text = "My Button2";
        toolStripButton1.MouseHover += new EventHandler(OnClick);

        MoveNextItem = DataGrid_ToolstripMoveNext;

        MoveNextItem.Enabled = true;
        toolStripButton1.Enabled = true;
    }

    private void InitializeComponent()
    {
        ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
        this.SuspendLayout();
        ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
        this.ResumeLayout(false);
    }
}

0 个答案:

没有答案