Muszę usunąć fokus z kilku pól tekstowych. Próbowałem użyć:
textBox1.Focused = false;
ReadOnly
Wartość jego właściwości to true
.
Następnie próbowałem ustawić fokus na formularzu, aby usunąć go ze wszystkich pól tekstowych, ale to również nie działa:
this.Focus();
a funkcja powraca false
po zaznaczeniu pola tekstowego.
Jak więc usunąć fokus z TextBox?
Skupienie się na etykiecie nie zadziałało, robiąc coś takiego,
label1.Focus()
prawda? pole tekstowe nadal ma fokus podczas ładowania formularza, jednak wypróbowanie odpowiedzi Velociraptors zadziałało, ustawiając formant Active Form na etykietę w następujący sposób:źródło
this.ActiveControl = panelOnMyForm;
Możesz dodać następujący kod:
źródło
Spróbuj wyłączyć i włączyć pole tekstowe.
źródło
textBox1.Enabled = false;
wyłączy twoje pole tekstowe. a ustawienie gotrue
ponownie włączy.Można również ustawić form
activecontrol
własności donull
jakźródło
Focus
ustawia fokus wprowadzania, więc ustawienie go na formularz nie zadziała, ponieważ formularze nie akceptują danych wejściowych. Spróbuj ustawić właściwość formularza naActiveControl
inną kontrolkę. Można również użyćSelect
do wybrania określonej kontrolki lubSelectNextControl
do wybrania następnej kontrolki w kolejności tabulacji.źródło
Select()
pracowałem dla mnie.Spróbuj tego:
Najpierw skonfiguruj kolejność zakładek.
Następnie w przypadku ładowania formularza możemy wysłać programowo naciśnięcie klawisza tabulatora do aplikacji. Tak więc ta aplikacja ustawi fokus na pierwszy element sterujący w kolejności tabulacji.
w formie load nawet napisz tę linię.
To zadziałało dla mnie.
źródło
Ten post doprowadził mnie do tego:
Dzięki temu mogę uchwycić wszystkie wejścia klawiatury na najwyższym poziomie bez innych elementów sterujących zwariowanych.
źródło
Znalazłem dobrą alternatywę! U mnie działa najlepiej, bez skupiania się na czymś innym.
Spróbuj tego:
źródło
Zrobiłem to na mojej niestandardowej kontrolce, zrobiłem to na Focus ()
Więc jeśli skupia się na texboksie - natychmiast skupia się na nadrzędnym polu tekstowym (formularz lub panel ...) Jest to dobra opcja, jeśli chcesz zrobić to na niestandardowej kontroli.
źródło
Wygląda na to, że nie muszę skupiać się na żadnych innych elementach. W aplikacji Windows Phone 7 używałem metody Fokus, aby usunąć fokus pola tekstowego.
Podanie następującego polecenia spowoduje, że fokus nie zostanie ustawiony na nic:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.focus.aspx
U mnie zadziałało, ale nie wiem, dlaczego u Ciebie nie zadziałało: /
źródło
Prostym rozwiązaniem byłoby zabicie koncentracji, po prostu stwórz własną klasę:
źródło
źródło
Sposób, w jaki się z tym obchodzę, polega na umieszczeniu wszystkich kontrolek winform. Wszystkie etykiety i elementy sterujące, które nie są wybierane, tworzę jako kolejność tabulacji 0, a następnie moją pierwszą kontrolkę jako kolejność tabulacji 2, a następnie zwiększam kolejność każdej kontrolki do wyboru o 1, więc 3, 4, 5 itd.
W ten sposób, gdy uruchamiają się moje Winformy, pierwszy TextBox nie jest aktywny!
źródło
możesz to zrobić na dwa sposoby
przeciągnij dwa pola tekstowe
źródło
Jeśli chcesz tylko efektu optycznego, że pole tekstowe nie ma niebieskiego zaznaczenia na całej zawartości, po prostu nie zaznaczaj tekstu:
Po tym, podczas dodawania treści za pomocą
.Text += "..."
, nie będzie widać niebieskiego wyboru.źródło
Spróbuj ustawić
TabStop
sięFalse
do kontrolki widoku, który nie jest być skoncentrowany.Na przykład:
źródło
W konstruktorze Form lub UserControl przechowującym TextBox write
Po InitializeComponent (); Źródło: https://stackoverflow.com/a/4811938/5750078
Przykład:
źródło