【问题标题】:VB.NET Creating a dynamic StripMenuVB.NET 创建动态 StripMenu
【发布时间】:2014-08-26 03:06:54
【问题描述】:

我正在尝试创建一个动态条形菜单,基本上程序会读取一个包含菜单结构的 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”和“e”没有在 NewFile_Click 的调用中传递,我不知道该怎么办。

【问题讨论】:

    标签: c# vb.net toolstripmenu


    【解决方案1】:

    在 VB.Net 中,使用 AddressOf:

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

    【讨论】:

    • 谢谢,另一个问题,你知道在这种情况下我如何调用函数吗?让我解释一下,菜单标题在 XML 文件中也是函数的名称,所以在 XML 文件中我有菜单的名称和单击时将执行的函数的名称。你能再帮我一次吗?
    • @FernandoZuidarxis 听起来您应该再次按下按钮,但您所说的“函数名称”不是很清楚。确保用示例记录问题。
    • 好的,谢谢你,我在想一些不是很有用的东西,但是非常感谢。
    猜你喜欢
    • 2019-12-12
    • 2011-04-06
    • 1970-01-01
    • 2018-06-25
    • 2014-08-27
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多