Die Community zu .NET und Classic VB.
Menü

VB.NET-Tipp 0124: Dynamisch befülltes Kontextmenu

 von 

Beschreibung

In manchen Fällen ist es vorteilhaft ein (Kontext-)Menü erst zur Laufzeit zu befüllen oder zumindestens die Events über eine gemeinsame Prozedur zu bündeln.

Schwierigkeitsgrad:

Schwierigkeitsgrad 2

Framework-Version(en):

.NET Framework 1.0, .NET Framework 1.1, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Compact Framework 1.0, .NET Compact Framework 2.0, .NET Framework 4

.NET-Version(en):

Visual Basic 2002, Visual Basic 2003, Visual Basic 2005, Visual Basic 2008, Visual Basic 2010

Download:

Download des Beispielprojektes [10,12 KB]

' Dieser Quellcode stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!

' Projektversion:   Visual Studio 2005
' Option Strict:    An
'
' Referenzen: 
'  - System
'  - System.Data
'  - System.Deployment
'  - System.Drawing
'  - System.Windows.Forms
'  - System.Xml
'
' Imports: 
'  - Microsoft.VisualBasic
'  - System
'  - System.Collections
'  - System.Collections.Generic
'  - System.Data
'  - System.Drawing
'  - System.Diagnostics
'  - System.Windows.Forms
'

' ##############################################################################
' ################################# Form1.vb ###################################
' ##############################################################################
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles MyBase.Load

        'Items und Handler entfernen
        For Each Item As ToolStripMenuItem In ContextMenuStrip1.Items
            RemoveHandler Item.Click, AddressOf ToolStripMenuItem_Click
        Next
        ContextMenuStrip1.Items.Clear()

        ' Items einfügen
        For i As Integer = 0 To 9
            ContextMenuStrip1.Items.Add("Item " & i.ToString)
        Next

        ' Handler hinzufügen
        For Each Item As ToolStripMenuItem In ContextMenuStrip1.Items
            AddHandler Item.Click, AddressOf ToolStripMenuItem_Click
        Next
    End Sub

    Private Sub ToolStripMenuItem_Click(ByVal sender As System.Object, _
            ByVal e As System.EventArgs)

        Dim Item As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
        MessageBox.Show(Item.Text)
    End Sub

    Private Sub Form1_MouseDown(ByVal sender As Object, _
            ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown

        If e.Button = Windows.Forms.MouseButtons.Right Then
            Dim Pt As New Point(e.X, e.Y)
            ContextMenuStrip1.Show(Me, Pt)
        End If
    End Sub
End Class

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.