VB.NET-Tipp 0035: ListBox um eine Locked-Eigenschaft erweitern
von Herfried Wagner
Beschreibung
Dieses Beispiel zeigt, wie man die Standard-ListBox um eine Locked-Eigenschaft erweitert, die eine Änderung der Auswahl unterbindet.
Schwierigkeitsgrad: | Framework-Version(en): .NET Framework 1.0, .NET Framework 1.1, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5 | .NET-Version(en): Visual Basic 2002, Visual Basic 2003, 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 2002/2003 ' Option Strict: An ' Option Explicit: An ' ' Referenzen: ' - System ' - System.Drawing ' - System.Windows.Forms ' ' ############################################################################## ' ############################ ExtendedListBox.vb ############################## ' ############################################################################## Option Explicit On Option Strict On Option Compare Binary Imports System Imports System.Windows.Forms ' <remarks> ' Erweitert das Standard-ListBox-Steuerelement ' um die Möglichkeit, diese zu sperren, sodass der ' Benutzer die Auswahl und den Inhalt nicht manipulieren kann. ' </remarks> Public Class ExtendedListBox Inherits ListBox Private Const WM_KEYDOWN As Int32 = &H100 Private Const WM_LBUTTONDOWN As Int32 = &H201 Private Const WM_SETFOCUS As Int32 = &H7 Private m_blnLocked As Boolean ' <summary> ' Erstellt eine neue Instanz der Klasse. ' </summary> Public Sub New() MyBase.New() End Sub Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) MyBase.Dispose(disposing) End Sub Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) If m_blnLocked Then If m.Msg = WM_KEYDOWN Or m.Msg = WM_LBUTTONDOWN Or _ m.Msg = WM_SETFOCUS Then Return End If End If MyBase.WndProc(m) End Sub ''' <summary> ''' Gibt an oder zurück, ob der Inhalt und die Auwahl gesperrt sein soll. ''' <summary> ''' <value>Wert, der angibt, ob die Auswahl geändert werden kann.</value> Public Property Locked() As Boolean Get Return m_blnLocked End Get Set(ByVal Value As Boolean) m_blnLocked = Value End Set End Property End Class ' ############################################################################## ' ################################ MainForm.vb ################################# ' ############################################################################## Option Explicit On Option Strict On Option Compare Binary Imports System Imports System.Windows.Forms ' <remarks> ' Hauptformular der Anwendung. ' </remarks> Public Class MainForm Inherits System.Windows.Forms.Form Private Sub chkLocked_CheckedChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles chkLocked.CheckedChanged Me.lstSample.Locked = Me.chkLocked.Checked End Sub Private Sub cboSelectionModes_SelectedIndexChanged( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles cboSelectionModes.SelectedIndexChanged Me.lstSample.SelectionMode = CType( _ ([Enum].GetValues(GetType(SelectionMode))), _ SelectionMode())(Me.cboSelectionModes.SelectedIndex) 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.