Feedback

VB - WinForms Label: Kein Kopieren ins Clipboard bei Doppelklick

Veröffentlicht von am 5/30/2013
(1 Bewertungen)
Dem einen oder anderen ist es vielleicht noch nicht aufgefallen: Ein Doppelklick auf ein WinForms-Label kopiert den Label-Text ins Clipboard.

Verschiedene bisher bekannte Lösungen wie das Überschreiben von WndProc oder Manipulation des Clipboard-Inhalts haben Nebeneffekte. Die folgende Lösung dagegen keine, zumindest so wie es aussieht.

Einfach die Text-Eigenschaft überschreiben und den Text-Wert in einer eigenen Variable ablegen und NICHT auf die Text-Eigenschaft des Basis-Labels zugreifen (diese muss immer leer bleiben!). Bei einer Textänderung das Label refreshen und das TextChanged-Ereignis anschieben.

Bei weiterem eigenem Code in einem abgeleiteten Label-Control darf natürlich ebenfalls nicht auf die Basis-Text-Eigenschaft zugegriffen werden.
Private mText As String

Public Overrides Property Text As String
    Get
        Return mText
    End Get
    Set(value As String)
        If mText <> value Then
            mText = value
            Me.Refresh()
            Me.OnTextChanged(EventArgs.Empty)
        End If
    End Set
End Property
Abgelegt unter WinForms, Label, Clipboard, DoubleClick.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!