Erfassen MouseDown-Ereignis für .NET TextBox
Gibt es eine Möglichkeit, zu erfassen, die das MouseDown-sogar vom .NET 2.0 TextBox-Steuerelement?
Ich weiß, das geerbte Control-Klasse hat die Veranstaltung, aber es ist nicht ausgesetzt, in das Textfeld ein.
Gibt es eine Möglichkeit, das überschreiben der event-handler?
Ich habe auch versucht, die OpenNETCF TextBox2-Steuerelement, mit dem Sie das MouseDown-Ereignis ausgesetzt, aber egal was ich mache, es nicht ausgelöst hf.
Irgendwelche Vorschläge?
Welche verrückten mobilen Gerät tun
Sie haben, dass hat eine Maus? 🙂
Ja, windows mobile nicht über eine tatsächliche Maus, aber Sie sind falsch, dass Windows Mobile .NET nicht unterstützen, die Maus-Ereignisse. A klicken Sie auf oder bewegen Sie auf dem Bildschirm noch immer als "Maus" - Ereignis. Es war auf diese Weise getan, so dass der code könnte portieren von Windows-Vollversion problemlos. Und dies ist ein Windows Mobile Problem. Das TextBox-Steuerelement auf Windows keine native Maus-events, entweder. Ich war nur mit Windows Mobile in diesem Fall.
Edit: Und auf einer seitlichen Anmerkung...als Windows Mobile gebaut wird der WindowsCE Kern ist oft für embedded-desktop-Systeme und Schlanke Terminal Services-clients oder "WinTerms" es hat Unterstützung für einen hardware-Maus und hat für eine lange Zeit. Die meisten Geräte haben einfach nicht die ports, stecken Sie ein in.
Je nach dem .Net Framework, die
MouseDown-Ereignisprozedur für ein Textfeld
unterstützt wird. Was passiert, wenn Sie
versuchen Sie, um den code auszuführen?
Eigentlich nur dort, weil es erbt dann von "Kontrolle", wie jeder andere Form der Kontrolle. Es ist jedoch außer Kraft gesetzt (und geändert, um private glaub ich) in die TextBox-Klasse. So wird es nicht zeigen, bis in IntelliSense in Visual Studio.
Jedoch, Sie können den code schreiben:
textBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.textBox1_MouseDown);
und es wird kompiliert und laufen ganz gut, das einzige problem ist, dass textBox1_MouseDown() nicht ausgelöst wird, wenn Sie auf das TextBox-Steuerelement. Ich nehme an, dies ist wegen der Event überschrieben werden, intern. Ich will auch gar nicht ändern, was passiert auf der Veranstaltung intern, ich möchte nur hinzufügen, meine eigene event-handler an das Ereignis, so kann ich Feuer einige benutzerdefinierte code als könnten Sie mit jedem anderen event.
- Welche Art von crazy mobile Gerät Sie haben, dass hat eine Maus? 🙂 Im ernst, der Grund, es ist kein MouseDown-Ereignis ist, weil Windows Mobile nicht über eine Maus. Was versuchen Sie zu tun, in der MouseDown-event-handler? Vielleicht gibt es einen anderen Weg.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht aus wie du Recht hast. Mist. Kein MouseOver-Ereignis.
Einer der fallbacks, die arbeitet immer mit .NET, obwohl, ist P/Invoke. Schon jemand nahm sich die Zeit, dies zu tun für die .NET CF TextBox. Ich fand diese auf CodeProject:
http://www.codeproject.com/KB/cs/TextBox_subclassing.aspx
Hoffe, das hilft
Ich weiß, diese Antwort ist so spät, aber ich hoffe, es endet als nützlich für jemanden, der findet diese. Auch habe ich nicht ganz kommen, mit es mich. Ich glaube, dass ich ursprünglich gefunden, die meisten von der info auf der OpenNETCF-boards, aber das, was eingegeben wird, unten ist ein Auszug aus einer meiner Anwendungen.
Können Sie ein mousedown-Ereignis durch die Umsetzung der OpenNETCF.Windows.Formen.IMessageFilter-Schnittstelle und befestigen Sie es an Ihre Anwendung message filter.
Diese ist, wie könnte man realisieren das MouseUpDownFilter:
Nun diese MouseUpDownFilter Feuer, ein MouseUp/MouseDown-event, wenn diese auftreten auf einem überwachten Kontrolle, z.B. deine textbox. Verwenden Sie diese filter fügen Sie einige beobachtet, kontrolliert und weisen Sie zu den Ereignissen, die Sie auslösen können, in Ihrer form load-Ereignis:
Fair genug. Sie wissen wahrscheinlich mehr als ich über das Windows Mobile. 🙂 Ich habe gerade angefangen, Programmierung für Sie. Aber in regelmäßigen WinForms, können Sie überschreiben die OnXxx-event-handler-Methoden, wie Sie wollen. Ein kurzer Blick in den Reflektor mit der CF zeigt, dass die Kontrolle, TextBoxBase TextBox und nicht verhindern, dass Sie das überschreiben der OnMouseDown-event-handler.
Haben Sie versucht das?:
gibt es eine 'OnEnter' - Ereignis, das Sie erfassen könnten statt?
würd es vermutlich auch erfassen, wenn Sie mit der Tabulatortaste in das Textfeld ein, sowie geben Sie das Textfeld, indem Sie auf Tippen/klicken, aber wenn das kein problem ist, dann kann dies ein einfacher work-around
Je nach dem .Net Framework, die MouseDown-Ereignisprozedur für ein Textfeld unterstützt wird. Was passiert, wenn Sie versuchen, um den code auszuführen?