VB.NET-Tipp 0106: CheckMenu
von Spatzenkanonier
Beschreibung
System.Windows.Forms.ToolStripMenuItem hat die recht nützlichen Eigenschaften einer Checkbox. Wenn es auf oberster Menu-Ebene angeordnet ist, jedoch leider nicht. Dieser Tipp implementiert einen ToolStripMenuItem-Erben, der bei Klicks sein Bild wechselt. Anwendung: Nachdem man das Projekt erstellt hat, fügt man seinem Menustrip ein Checkmenu hinzu, indem man den Dropdown neben "hier eingeben" betätigt.
Schwierigkeitsgrad: | Framework-Version(en): .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5 | .NET-Version(en): Visual Basic 2005, Visual Basic 2008 | Download: |
' 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.Drawing ' - System.Windows.Forms ' - System.Xml ' ' Imports: ' - Microsoft.VisualBasic ' - Microsoft.VisualBasic.ControlChars ' - System ' - System.Collections ' - System.Collections.Generic ' - System.Data ' - System.Drawing ' - System.Diagnostics ' - System.Windows.Forms ' ' ############################################################################## ' ############################### CheckMenu.vb ################################# ' ############################################################################## Imports System.ComponentModel <DefaultEvent("CheckedChanged")> _ Public Class CheckMenu : Inherits ToolStripMenuItem ' Shared Images: alle CheckMenu-Objekte greifen auf **dieselben** Images ' zu, anstatt sich je eigene zu erzeugen Private Shared _Images As Image() Shared Sub New() ' Untiger ComponentResourceManager arbeitet auf der lokalen Ressource ' "Checkmenu.resx". Um eine lokale Ressource-Datei zu erzeugen muss ' zunächst von Component geerbt werden (hier: mittelbar über ' ToolStripMenuItem). Dann in die Designer-Ansicht von CheckMenu ' gehen, ein beliebiges Item aus der Toolbox hinzufügen, und wieder ' löschen. Im Projekt-Explorer "Alle Dateien anzeigen" aktivieren, ' CheckMenu-Knoten erweitern, und Checkmenu.resx mit Doppelklick ' öffnen. Jetzt können Bilder zugefügt werden. Sinn der lokalen ' Bildressource ist, daß CheckMenu seine Bilder "mitnimmt", wenn es ' in andere Projekte kopiert wird. With New ComponentResourceManager(GetType(CheckMenu)) _Images = New Image() {CType(.GetObject("UnChecked"), Image), _ CType(.GetObject("Checked"), Image)} End With End Sub Public Sub New() MyBase.New() Me.Image = _Images(0) MyBase.CheckOnClick = True End Sub Protected Overrides Sub OnCheckedChanged(ByVal e As System.EventArgs) MyBase.OnCheckedChanged(e) Me.Image = _Images(-CInt(MyBase.Checked)) 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.