VB.net - 来自MenuStrip的派生类

时间:2012-10-31 20:03:25

标签: vb.net derived-class

我要做的是制作一个自定义的MenuStrip控件,其中包含几个项目(主菜单,注销,退出等...)。可以使用方法来处理被点击的项目。我认为从长远来看这可以省去一些冗余的代码,我也可以学到一些东西。

最终产品基本上是一个自定义的MenuStrip控件,我可以将其放在我的表单上,并且已经具有其中项目的功能。

所以我的问题是,这可以吗?我是一个新手,但如果它可以做到并且实际上是一个好主意,那么我想试一试。

错误比比皆是,但这正是我的想法......

Public Class MenuStripCustom
    Inherits MenuStrip

    Add MenuItem(MainMenuToolStripMenuItem)
    MainMenuToolStripMenuItem.Text = Main Menu

        Protected Sub MainMenuNav(e As System.EventArgs) _
            Handles MyBase.MainMenuToolStripMenuItem.Click
        MainMenu.Visible = True
        Me.Close()
    End Sub

End Class

谢谢!

1 个答案:

答案 0 :(得分:3)

是的,可以做到没有问题。只需创建一个新的用户控件,并使其继承自MenuStrip。然后为名为“UserControl1”的用户控件输入类似于下面的代码。

Public Class UserControl1
    Inherits MenuStrip

    Private WithEvents NavToolStrip As New ToolStripMenuItem("Nav")

    Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.
        Dim tsi As New ToolStripMenuItem
        Me.Items.Add(NavToolStrip)
    End Sub

    Private Sub NavToolStrip_Click(sender As Object, e As EventArgs) Handles NavToolStrip.Click
        MsgBox("Nav clicked")
    End Sub
End Class

编译代码,然后您就可以将“UserControl1”从工具箱拖到表单上。