2009-06-25 4 views
2

Ich arbeite an einem benutzerdefinierten Benutzersteuerelement, das im Wesentlichen ein Name-Wert-Paar anzeigt (Name auf schwarzem Hintergrund, Wert auf a Weiß). Ich habe meine Steuerung korrekt angezeigt, sogar in Designer und auf meiner Build-Seite.Benutzerdefiniertes Benutzersteuerelement in C# ... Klicken Sie mit der rechten Maustaste auf Menü, um Text zu kopieren (Java Developer learning C#)

Was ich von hier aus tun möchte, ist die Möglichkeit, mit der rechten Maustaste auf das Benutzersteuerelement zu klicken und ein Menü mit einer "Copy Value" -Option aufzurufen, das bei Auswahl den Wert in den "value" kopiert "Teil des Benutzersteuerelements in die Zwischenablage. Was ist die beste Methode der Annäherung?

Ich bin mir nicht sicher, wo ich anfangen soll, da die meiste Dokumentation zu den Benutzersteuerelementen, die ich gefunden habe, die Anzeige des Steuerelements betrifft und nicht unbedingt damit interagiert. Außerdem, da ich noch C# lerne, hätte ich vielleicht einen wichtigen Teil meines Problems in dieser Frage ausgelassen, also bitte darauf hinweisen, wenn es der Fall ist.

Ich verwende Visual Studio 2008 (wenn das wichtig ist).

+0

Winforms oder Webforms? –

+0

Winforms (15 Zeichen in diesem Kommentar erforderlich) – Kivus

Antwort

3

Untersuchen Sie die ContextMenu Kontrolle und die ContextMenu Eigenschaft anderer Kontrollen. Wenn Sie der ContextMeny-Eigenschaft eines anderen Steuerelements ein ContextMenu-Steuerelement zuweisen, wird die Rechtsklick-> Popup-Menüverdrahtung für Sie ausgeführt. Dann müssen Sie nur das Click-Ereignis der verschiedenen Menüpunkte im Kontextmenü implementieren.

Dann können Sie den Clipboard.SetText (wie von BFree vorgeschlagen) verwenden, um den gewünschten Wert in die Zwischenablage zu setzen.

+0

Danke. Ihre Antworten kombiniert mit diesem Tutorial (http://dotnetperls.com/contextmenustrip-example) gaben mir das grundlegende Verständnis, das ich brauchte, um Dinge zum Laufen zu bringen. – Kivus

1

Fügen Sie dem Steuerelement ein ContextMenu hinzu. Die, haken Sie in das MouseClick (oder MouseDown, was auch immer besser funktioniert) Event und wenn es ein Rechtsklick ist, dann rufen Sie show auf dem ContextMenu auf (es gibt ein paar Überladungen, versuchen Sie sich mit ihnen zu befassen, sehen Sie, was am besten für Sie funktioniert). Dann rufen Sie Clipboard.SetText (...) im click -Ereignis Ihres Kontextmenüs auf, um den Wert in die Zwischenablage zu setzen.

Verwandte Themen