Как убрать фокус из TextBox в WinForms?
Мне нужно удалить фокус из нескольких текстовых полей. Я попытался использовать:
Свойство свойства ReadOnly true .
Затем я попытался установить фокус на форме, чтобы удалить ее из всех текстовых полей, но это также не работает:
и функция возвращает false при выборе текстового поля.
Итак, как удалить фокус из TextBox?
17 ответов
Для перемещения фокуса вам понадобится другой настраиваемый элемент управления.
Обратите внимание, что вы можете установить Focus на метку. Возможно, вам захочется рассмотреть, куда вы хотите, чтобы клавиша [Tab] приняла следующий код.
Также обратите внимание, что вы не можете установить его в форму. Контейнерные элементы управления, такие как Form и Panel, передают Focus на свой первый дочерний элемент управления. Который может быть TextBox, в котором вы хотели, чтобы он ушел.
Сосредоточение внимания на ярлыке не сработало для меня, сделав что-то вроде label1.Focus() правильно? текстовое поле по-прежнему имеет фокус при загрузке формы, однако пытается Velociraptors ответ, работал у меня, установив элемент управления Active Active на ярлык следующим образом:
Как удалить фокус из текстового поля в WinForms?
мне нужно удалить фокус из нескольких текстовых полей. Я пробовал использовать:
его ReadOnly стоимость имущества составляет true .
затем я попытался установить фокус на форму, чтобы удалить ее из всех текстовых полей, но это также не работает:
и функция возвращает false при выборе текстового поля.
Итак, как мне удалить фокус из текстового поля?
18 ответов:
вам нужен какой-то другой фокусируемый элемент управления для перемещения фокуса.
обратите внимание, что вы можете установить фокус на этикетку. Возможно, вы захотите рассмотреть, где вы хотите, чтобы ключ [Tab] взял его дальше.
Также обратите внимание, что вы не можете установить его на форму. Контейнерные элементы управления, такие как форма и панель, передадут фокус на свой первый дочерний элемент управления. Это может быть текстовое поле, от которого вы хотите его отодвинуть.
фокусировка на этикетке не сработала для меня, делая что-то вроде label1.Focus() верно? текстовое поле по-прежнему имеет фокус при загрузке формы, однако попытка велоцирапторы ответ, работал для меня, установив активный элемент управления формы на метку следующим образом:
Как убрать фокус с TextBox в WinForms?
Мне нужно убрать фокус с нескольких текстовых полей. Я пробовал использовать:
это ReadOnly стоимость собственности true .
Затем я попытался установить фокус на форме, чтобы удалить ее из всех текстовых полей, но это также не сработало:
и функция возвращает false когда выбрано текстовое поле.
Итак, как мне удалить фокус с TextBox?
задан 16 июля ’09, 17:07
20 ответы
Вам понадобится какой-то другой настраиваемый элемент управления, чтобы переместить фокус.
Обратите внимание, что вы можете установить фокус на метку. Возможно, вы захотите подумать о том, где вы хотите, чтобы клавиша [Tab] переместилась дальше.
Также обратите внимание, что вы не можете установить его для формы. Контейнерные элементы управления, такие как Form и Panel, передают Focus своему первому дочернему элементу управления. Это может быть текстовое поле, от которого вы хотели бы отказаться.
ответ дан 03 окт ’14, 07:10
Спасибо; Я просто попытался сфокусироваться на метке, и теперь текстовое поле становится несфокусированным. Кажется, по какой-то причине вы не можете сосредоточиться на форме. — Каллум Роджерс
Контейнерные элементы управления (форма, панель) передают фокус своему первому дочернему элементу управления. — Хенк Холтерман
Отличное предложение. Это решило мою проблему. Я использую KeyPress против самой формы, и у меня есть несколько кнопок и т. Д. Проблема в том, что приложение принимает ввод от кардридера, поэтому, если фокус уходит с самой формы, все ад вырвется наружу. Сосредоточение внимания на ярлыке после нажатия кнопки решило мою проблему. Огромное спасибо! — Joelc
У меня не получилось сосредоточиться на лейбле, я сделал что-то вроде label1.Focus() Правильно? текстовое поле все еще имеет фокус при загрузке формы, однако пытается Велоцирапторы ответ, сработал для меня, установив элемент управления Form Active для метки следующим образом:
How to remove the focus from a TextBox in WinForms?
I need to remove the focus from several TextBoxes. I tried using:
Its ReadOnly property value is true .
I then tried setting the focus on the form, so as to remove it from all the TextBoxes, but this also fails to work:
and the function returns false when a textbox is selected.
So, how do I remove the focus from a TextBox?
20 Answers 20
You can add the following code:
![]()
Focusing on the label didn’t work for me, doing something like label1.Focus() right? the textbox still has focus when loading the form, however trying Velociraptors answer, worked for me, setting the Form’s Active control to the label like this:
Try disabling and enabling the textbox.
You can also set the forms activecontrol property to null like
![]()
Focus sets the input focus, so setting it to the form won’t work because forms don’t accept input. Try setting the form’s ActiveControl property to a different control. You could also use Select to select a specific control or SelectNextControl to select the next control in the tab order.
First set up tab order.
Then in form load event we can send a tab key press programmatically to application. So that application will give focus to 1st contol in the tab order.
in form load even write this line.
This did work for me.
This post lead me to do this:
This allows me to capture all the keyboard input at the top level without other controls going nuts.
![]()
A simple solution would be to kill the focus, just create your own class:
I’ve found a good alternative! It works best for me, without setting the focus on something else.
I made this on my custom control, i done this onFocus()
So if texbox focused — it instantly focus textbox parent (form, or panel. ) This is good option if you want to make this on custom control.
It seems that I don’t have to set the focus to any other elements. On a Windows Phone 7 application, I’ve been using the Focus method to unset the Focus of a Textbox.
Giving the following command will set the focus to nothing:
It worked for me, but I don’t know why didn’t it work for you :/
![]()
The way I get around it is to place all my winform controls. I make all labels and non-selecting winform controls as tab order 0, then my first control as tab order 2 and then increment each selectable control’s order by 1, so 3, 4, 5 etc.
This way, when my Winforms start up, the first TextBox doesn’t have focus!