Ich muss den Fokus von mehreren TextBoxen entfernen. Ich habe versucht:
textBox1.Focused = false;
Sein ReadOnly
Eigenschaftswert ist true
.
Ich habe dann versucht, den Fokus auf das Formular zu setzen, um es aus allen Textfeldern zu entfernen, aber dies funktioniert auch nicht:
this.Focus();
und die Funktion kehrt zurück, false
wenn ein Textfeld ausgewählt ist.
Wie entferne ich den Fokus von einer TextBox?
Sich auf das Label zu konzentrieren hat bei mir nicht funktioniert, so etwas wie
label1.Focus()
richtig zu machen? Das Textfeld hat beim Laden des Formulars immer noch den Fokus. Der Versuch, Velociraptors zu beantworten, hat bei mir funktioniert und das aktive Steuerelement des Formulars wie folgt auf die Beschriftung gesetzt:quelle
this.ActiveControl = panelOnMyForm;
Sie können den folgenden Code hinzufügen:
quelle
Versuchen Sie, das Textfeld zu deaktivieren und zu aktivieren.
quelle
textBox1.Enabled = false;
deaktiviert Ihr Textfeld. Wenn Sie es auf einstellen,true
wird es wieder aktiviert.Sie können auch die Formen gesetzt
activecontrol
Eigenschaftnull
wiequelle
Focus
Legt den Eingabefokus fest, sodass das Festlegen des Formulars nicht funktioniert, da Formulare keine Eingaben akzeptieren. Versuchen Sie, dieActiveControl
Eigenschaft des Formulars auf ein anderes Steuerelement festzulegen. Sie können auchSelect
ein bestimmtes SteuerelementSelectNextControl
auswählen oder das nächste Steuerelement in der Tabulatorreihenfolge auswählen.quelle
Select()
arbeitete für mich.Probier diese:
Richten Sie zuerst die Tab-Reihenfolge ein.
Im Formularladeereignis können wir dann programmgesteuert eine Tabulatortaste an die Anwendung senden. Diese Anwendung konzentriert sich also auf die 1. Steuerung in der Tabulatorreihenfolge.
In Form Load schreiben Sie sogar diese Zeile.
Das hat bei mir funktioniert.
quelle
Dieser Beitrag hat mich dazu veranlasst:
Auf diese Weise kann ich alle Tastatureingaben auf der obersten Ebene erfassen, ohne dass andere Steuerelemente verrückt werden.
quelle
Ich habe eine gute Alternative gefunden! Es funktioniert am besten für mich, ohne den Fokus auf etwas anderes zu legen.
Versuch das:
quelle
Ich habe dies auf meinem benutzerdefinierten Steuerelement gemacht, ich habe dies auf Focus () gemacht
Wenn also texbox fokussiert ist, wird das übergeordnete Textfeld (Formular oder Bedienfeld ...) sofort fokussiert. Dies ist eine gute Option, wenn Sie dies auf einem benutzerdefinierten Steuerelement vornehmen möchten.
quelle
Es scheint, dass ich mich nicht auf andere Elemente konzentrieren muss. In einer Windows Phone 7-Anwendung habe ich die Fokusmethode verwendet, um den Fokus eines Textfelds zu deaktivieren.
Wenn Sie den folgenden Befehl eingeben, wird der Fokus auf nichts gesetzt:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.focus.aspx
Es hat bei mir funktioniert, aber ich weiß nicht, warum es bei Ihnen nicht funktioniert hat: /
quelle
Eine einfache Lösung wäre, den Fokus zu beenden, einfach eine eigene Klasse zu erstellen:
quelle
quelle
Ich komme darum herum, indem ich alle meine Winform-Steuerelemente platziere. Ich mache alle Beschriftungen und nicht ausgewählten Winform-Steuerelemente als Tabulatorreihenfolge 0, dann mein erstes Steuerelement als Tabulatorreihenfolge 2 und erhöhe dann die Reihenfolge jedes auswählbaren Steuerelements um 1, also 3, 4, 5 usw.
Auf diese Weise hat die erste TextBox beim Start meiner Winforms keinen Fokus!
quelle
Sie können dies auf zwei Arten tun
Ziehen Sie zwei Textfelder
quelle
Wenn Sie nur den optischen Effekt wünschen, dass das Textfeld im gesamten Inhalt keine blaue Auswahl aufweist, wählen Sie einfach keinen Text aus:
Danach wird beim Hinzufügen von Inhalten mit
.Text += "..."
keine blaue Auswahl angezeigt.quelle
Bitte versuchen Sie setzen ,
TabStop
umFalse
für Ihre Ansicht Steuerung , die werden nicht fokussiert.Zum Beispiel:
quelle
Im Konstruktor des Formulars oder UserControl mit der TextBox schreiben
Nach der InitializeComponent (); Quelle: https://stackoverflow.com/a/4811938/5750078
Beispiel:
quelle