VB.. NET创建动态StripMenu

本文关键字:StripMenu 动态 创建 NET VB | 更新日期: 2023-09-27 18:19:19

我正在尝试创建一个动态条带菜单,基本上程序读取包含菜单结构的XML文件,这我已经成功完成了。

但是当我点击菜单"文件"为例,什么都没有发生,是的,我知道我必须创建一个函数,当我点击对象时将被调用,所以我按照一个网站的说明,解释了如何在c#中做到这一点,但是在VB。. NET不能工作,但在c#中可以。

下面是我在c#中看到的例子:

private void CreateMenuWithEventAndKey()
{
    MenuStrip strip = new MenuStrip();
    ToolStripMenuItem fileItem = new ToolStripMenuItem("&File");
    // Create our first item with an image and wired to a click event
    // Also sets Alt + 7 as the shortcut
    ToolStripMenuItem itemWithEventAndKey = new ToolStripMenuItem(
        "Delete Event", Image.FromFile("c:''Delete.png"), deleteItem_Click, 
        (Keys)Shortcut.Alt7);
    fileItem.DropDownItems.Add(itemWithEventAndKey);
    strip.Items.Add(fileItem);
    this.Controls.Add(strip);
}
// Event that is called from menu item.
private void deleteItem_Click(object sender, EventArgs e)
{
    MessageBox.Show("Delete Event");
}

这是我在VB.NET中所做的。

 Private Sub BtnLogin_Click(sender As Object, e As EventArgs) Handles BtnLogin.Click
    Dim menu As New MenuStrip()
    Panel1.Visible = False
    Dim fileitem = New ToolStripMenuItem("&file")
    fileitem.DropDownItems.Add("New", Image.FromFile("C:''add.png"), NewFile_click)
    menu.Items.Add(fileitem)
    Me.Controls.Add(menu)
End Sub
Private Sub NewFile_click(sender As Object, e As EventArgs)
    MessageBox.Show("New")
End Sub

它没有构建,因为它说对象"sender"answers"e"没有在NewFile_Click的调用中传递,我不知道该怎么做

VB.. NET创建动态StripMenu

在VB中。Net,使用AddressOf:

fileitem.DropDownItems.Add("New", _
                           Image.FromFile("C:''add.png"), _
                           AddressOf NewFile_click)