Maus Rechtsklick soll Aktion auslösen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Maus Rechtsklick soll Aktion auslösen

    Hallo,

    ich möchte, dass bei einem Rechtsklick (Maus) - auch außerhalb der Form - Text eines Labels in die Zwischenablage kopiert wird.
    Funzt bei mir nicht - weder innerhalb noch außerhalb der Form. :(

    Quellcode

    1. Private Sub Button1_MouseClick(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Button1.MouseClick
    2. If e.Button = MouseButtons.Right Then
    3. Clipboard.SetDataObject(Label1.Text, True)
    4. End If
    5. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „sterat“ ()

    Inwiefern außerhalb der Form?
    Mit Labels arbeitet man übrigens nicht, sondern zeigt nur Daten an. Trenne daher GUI und Daten, indem Du mit Variablen rechnest.
    Dir reicht btw die SetText-Methode.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    sterat schrieb:

    auch außerhalb der Form
    geht so nicht, da diesen Mausklick das darunterliegende Fenster oder der Explorer empfängt.
    Du müsstest Dir eine entsprechende Hook-Funktion schreiben.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    OK, mein Ansatz mit der Maus war totaler quatsch :)

    @Trade: Danke für den Hinweis mit dem Label

    @RodFromGermany: Hook-Funktion wäre wohl für mein Vorhaben etwas übertrieben, da die Form Aktiv ist und das, was in die Zwischenablage gespeichert werden soll in einer TextBox zur Verfügung steht. Was ich jetzt möchte ist, mit einer Aktion z.B. Tastenkombination den Wert aus der Textbox ist die Zwischenablage speichern.

    Hab es jetzt mal so probiert - wenn auch wieder ohne Erfolg. :(

    Quellcode

    1. Private Sub Form1_(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    2. If e.KeyCode = Keys.F10 Then
    3. Clipboard.SetDataObject(TextBox1.Text, True)
    4. End If
    5. End Sub


    Warum passiert hier nichts?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „sterat“ ()

    sterat schrieb:

    Warum passiert hier nichts?
    Gib der Form im Designer KeyPreview = True.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!