2009-03-19 6 views
0

Ich habe ein benutzerdefiniertes Steuerelement, das aus einer Richtextbox und einer Bildbox besteht. Jetzt möchte ich einen Kontexteintrag in die Richtextbox einfügen. Aber der Code, den ich auf dem Klicken auf die verschiedenen Menüs auf dem menustrip aufrufen möchte, gehört dem Hauptprojekt, in dem ich diese Kontrolle hinzufügen werde. Also dachte ich mir, dass ich den contextmenustrip zum usercontrol im Projekt hinzufügen sollte. Aber jetzt ist das Problem, wenn ich mit der rechten Maustaste auf das Bildfeld klicke, bekomme ich die Menüleiste, aber wenn ich auf die Richtextbox rechtsklicke, bekomme ich keine Kontextmenüs, irgendwelche Gründe oder Vorschläge?ContextMenuStrip on Benutzersteuerung mit Richtextbox C#

Auch seltsamerweise jedes Ereignis, das ich schreibe für den Umgang mit der Benutzersteuerung in meinem Projekt wird es überhaupt nicht auslösen. Liegt es daran, dass ich es in ein Panel-Steuerelement eingefügt habe? Irgendeine Hilfe?

+0

"Ich habe es in einem Panel-Steuerelement" Nichts damit zu tun. Das Ereignis sollte ausgelöst werden, unabhängig davon, wo sich die Kontrolle befindet. Sind Sie sicher, dass das Ereignis richtig verkabelt ist? –

Antwort

2

Fügen Sie das Kontextmenü zum Rich-Text-Feld hinzu, wie Sie es ursprünglich getan haben. Jetzt, statt den Code auszuführen, ein Ereignis auslösen, wenn dann auf den Menüpunkt geklickt wird.

Behandeln Sie dieses neue Ereignis im Hauptprojekt.

+0

Kannst du etwas näher erläutern, indem du das Ereignis erhöhst, wenn du auf den Menüpunkt klickst? Meinst du, ich muss das Menü vollständig schreiben, und für jeden Menüpunkt den Ereignisklick auslösen? –

+0

@Anirudh: Sie können für jeden Menüeintrag ein Ereignis oder ein Ereignis für jeden Menüeintrag ausführen, wobei der Menüeintrag in der abgeleiteten EvetArgs-Klasse als Argument übergeben wird. – TcKs

+0

@anirudh: Was TcKs gesagt haben - wäre meine Antwort ziemlich viel gewesen :) –