Start / Tipps / VB.NET-Tipp 0106: CheckMenu
 
Startseite Up-/Download Tutorials Club Das Team
Rubriken Foren Bücher Tips 'n Tricks Suche


VB.NET-Tipp 0106: CheckMenu


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 1 .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5 Visual Basic 2005, Visual Basic 2008
Download des Beispielprojektes Download des Beispielprojektes [15,02 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.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 oder Erfahrungen mit diesem Tipp haben, dann sollten Sie diese hier posten. Für alles weitere melden Sie sich bitte in einem zum Thema passendem Forum.

Falls Sie in ihren Kommentar Quellcode einbinden wollen, verwenden Sie bitte Pseudotags: Quellcode Bei VB.NET wird durch ein vorangestelltes [dotnet] markiert und durch [/dotnet] abgeschlossen.

Ihr Name:   
Ihre E-Mailadresse:   
 
Bitte folgende Kontrollnummer eingeben: 2781
Kontrolle:   
 
Ihre Frage/Ihr Kommentar:
Ja, ich möchte weitere Beiträge per E-Mail erhalten
Von ActiveVB-Notizservice am 01.01.2002 um 00:01
Bisher wurden noch keine Notizen zu dieser Seite gepostet.

Erstellt: 19.02.2009
Aktualisierung: 26.07.2010
  Autor: Spatzenkanonier
E-Mail: Tipps@ActiveVB.de



Copyright © 1998-2010 by ActiveVB
Alle Rechte vorbehalten.