1

私がやろうとしているのは、いくつかの項目 (メイン メニュー、ログアウト、終了など) が既にアタッチされたカスタム 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

ありがとう!

4

1 に答える 1

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」をツールボックスからフォームにドラッグできるようになります。

于 2012-11-01T09:31:06.373 に答える