Bringen Sie den cursor auf eine textbox in C#
Ich wollen, bringen Sie den cursor auf ein Textfeld, wenn ich eine Schaltfläche geklickt. Wie kann ich das tun? Ich habe versucht, den Fokus () - Methode, aber es hat nicht nicht funktioniert. Der code ist unten dargestellt.
CsNIPAddrTextBox.Focus();
CsNIPAddrTextBox.TabIndex = 1;
Wo in deinem code diese zwei Zeilen liegt?
Gibt es irgendeine andere element, das gerade den Fokus nach ordnen Sie die text-box? Mehr code benötigt wird, wirklich.
Nein, ich konzentriere mich nicht darauf, etwas anderes. Es ist unter click-Ereignis des treeview-Steuerelements.
Ich Liebe, WPF und MVVM-Muster für ein solches problem. hoffe, du wirst in der Lage sein, sich zu bewegen, um WPF-eines Tages
Deshalb habe ich den Kommentar 😉 Vielleicht war er dachte, es war Teil einer Lösung.
Gibt es irgendeine andere element, das gerade den Fokus nach ordnen Sie die text-box? Mehr code benötigt wird, wirklich.
Nein, ich konzentriere mich nicht darauf, etwas anderes. Es ist unter click-Ereignis des treeview-Steuerelements.
Ich Liebe, WPF und MVVM-Muster für ein solches problem. hoffe, du wirst in der Lage sein, sich zu bewegen, um WPF-eines Tages
Deshalb habe ich den Kommentar 😉 Vielleicht war er dachte, es war Teil einer Lösung.
InformationsquelleAutor sanchop22 | 2012-06-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn das 'richtige' TextBox (also nicht custom) dann einfach aufrufen
Focus()
funktionieren sollte. Ist es vielleicht nicht, aber wenn es read-only ist (ich bin mir nicht sicher - ich habe nicht versucht. Ich weiß, Sie können Holen Sie ein caret-Zeichen in einer nur-lese-Feld, was bedeutet, es kann den Fokus erhalten). Sicherlich, wenn es nichtEnabled
dann werden Sie nicht in der Lage zu fokussieren.Überprüfen Sie die
CanFocus
Eigenschaft auf true gesetzt ist - wenn nicht, dann gibt es möglicherweise eine anderen Grund verhindert das Steuerelement den Fokus erhält.Wenn das
true
aber, und das caret-Zeichen noch nicht auf der Kontrolle - Sie brauchen, um sicherzustellen, dass es ist, es zu empfangen. Fügen Sie eine Ereignisprozedur für das TextfeldGotFocus
event-und Haltepunkt es zu klären, dass es getroffen wird. Meine Vermutung ist, dass es Ihr Haltepunkt Treffer. Wenn dem so ist - dann ist die Antwort, dass ein anderer Prozess setzt den Fokus auf ein anderes Steuerelement direkt nach dem button-Klick erfolgt. Zum Beispiel, wenn Sie tun, diese Art der Sache in einem Validierungs-event-handler erhalten Sie ein ähnliches Ergebnis, da die Windows Forms-pipeline ist bereits in den Prozess der Veränderung der steuert, Wann der handler ausgelöst wird.Außerdem - warum sind Sie Einstellung
TabIndex=1
? In der RegelTabIndex
wird zur Entwurfszeit festgelegt wird und allein gelassen (es sei denn, diese werden dynamisch erstellt). Es sei denn, Sie haben eine insbesondere Grund für diese Aktion würde ich loswerden. Es muss nicht ein Lager auf, warum dies würde/würde nicht funktionieren - nur eine Beobachtung.Ja, Sie mögen Recht haben.
Haben Sie versucht, entfernen die Kontrolle und doppelte Kontrolle, die Sie hinzufügen, die richtige Steuerung. Eine frische Textfeld-Steuerelement, das nicht versaut ist, sollten fähig sein, die Fokus mit .Focus(). Wenn es dann immer noch nicht funktioniert, dann Vorschlag oben für die Prüfung der GotFocus-Ereignis ist der nächste Schritt.
also, warum akzeptieren Sie diese Antwort dann, wenn Sie es gefunden hat nicht funktioniert? Versuchen Michay Antwort und sehen, ob es funktioniert und wenn es dann funktioniert, sollten Sie es akzeptieren
InformationsquelleAutor Andras Zoltan
Versuchen
textbox1.select()
. Es ist der beste Ansatz, um bringen Sie Ihren cursor im Textfeld. Es wählt auch Inhalt der texbox das macht es einfacher für die Benutzer zu Bearbeiten, was in der textbox.InformationsquelleAutor ThEpRoGrAmMiNgNoOb
Bearbeiten wieder:
Wenn Sie versuchen, wählen Sie einen
TextBox
imClick
Falle einerTreeView
es in der Regel nicht, weil nach derClick
Veranstaltung derTreeNode
ausgewählt werden, so dass Ihre vorherigenFocus()
oderSelect()
nutzlos. Die praktikable Möglichkeit ist, vielleicht, indem er Sie in eineTimer
.Dies ist mehr wie ein hack, aber...
OK, aber Select () - Methode funktioniert nicht.
haben Sie überprüft, meine neuste Antwort?
InformationsquelleAutor Alvin Wong
Verwenden Sie TextBox.Wählen Sie Die Methode
Beispielsweise
Setzt den cursor an das Ende der text in Ihrem Textfeld.
InformationsquelleAutor TOP KEK
Wenn ich das richtig gelesen, du redest beweglichen Maus-cursor auf die textbox? - Dann verwenden Sie code wie diesen:
InformationsquelleAutor Jaska
Ich weiß, viele von Euch zur Verfügung gestellt hatte, beantwortet, aber dies kann nützlich sein, einige, die waren nicht in der Lage zu bekommen von früheren Antworten.
Dieser arbeitete für mich, Einstellung
Select()
auf input-text setzen Sie den cursor auf die textbox.Haben dies in form Konstruktor:
Handler-Code:
InformationsquelleAutor WonderHeart
Set theActiveControl-Eigenschaft des Formulars
InformationsquelleAutor jiji2663