Как убрать фокус из TextBox в WinForms?
Свойство свойства ReadOnly true . Затем я попытался установить фокус на форме, чтобы удалить ее из всех текстовых полей, но это также не работает:
this.Focus();
и функция возвращает false при выборе текстового поля. Итак, как удалить фокус из TextBox?
Callum Rogers 16 июль 2009, в 23:44
Поделиться
Поделиться:
17 ответов
Лучший ответ
Для перемещения фокуса вам понадобится другой настраиваемый элемент управления. Обратите внимание, что вы можете установить Focus на метку. Возможно, вам захочется рассмотреть, куда вы хотите, чтобы клавиша [Tab] приняла следующий код. Также обратите внимание, что вы не можете установить его в форму. Контейнерные элементы управления, такие как Form и Panel, передают Focus на свой первый дочерний элемент управления. Который может быть TextBox, в котором вы хотели, чтобы он ушел.
Henk Holterman 16 июль 2009, в 21:52
Поделиться
Спасибо; Я просто попытался сфокусироваться на метке, и теперь текстовое поле становится не сфокусированным. Кажется, вы не можете сосредоточиться на форме по какой-то причине.
Callum Rogers 16 июль 2009, в 21:05
Контейнерные элементы управления (форма, панель) передают фокус своему первому дочернему элементу управления.
Henk Holterman 16 июль 2009, в 21:09
Отличное предложение. Это решило мою проблему. Я использую KeyPress против самой формы, у меня есть несколько кнопок и т. Д. Проблема в том, что приложение получает данные от кард-ридера, поэтому, если фокус исчезает из самой формы, то весь ад проваливается. Сосредоточение внимания на ярлыке после нажатия кнопки решило мою проблему. Спасибо!
joelc 17 апр. 2013, в 05:55
Показать ещё 1 комментарий
Сосредоточение внимания на ярлыке не сработало для меня, сделав что-то вроде label1.Focus() правильно? текстовое поле по-прежнему имеет фокус при загрузке формы, однако пытается Velociraptors ответ, работал у меня, установив элемент управления Active Active на ярлык следующим образом:
private void Form1_Load(object sender, EventArgs e)
WhySoSerious 07 дек. 2011, в 07:40
Поделиться
Я хотел бы дать вам миллион стрелок вверх. я пробовал ВСЕ, что предложили люди, это единственное, что сработало. почему-то текстовое поле ВСЕГДА украло фокус у всего .
eladyanai 12 март 2013, в 14:58
Это работает также для элементов управления контейнером, таких как панели. Я просто хотел полностью убрать фокус, и это сработало: this.ActiveControl = panelOnMyForm;
Как грамотно убрать фокус с TextBox?
Всем доброе утро. Как грамотно убрать фокус с TextBox? Свойство Focused для данного контрола доступно только для чтения. Как вариант устанавливаю фокус на label, но на сколько это правильно — не знаю.
Отслеживать
задан 11 янв 2017 в 6:41
Александр Пузанов Александр Пузанов
2,785 5 5 золотых знаков 32 32 серебряных знака 64 64 бронзовых знака
TextBox1.TabStop = False; ?
11 янв 2017 в 6:50
тут необходимо себе уяснить, что просто «снять» фокус — нельзя. Фокус где-то должен быть. Не знаю является ли установка фокуса на label — лучшим местом для фокуса, это вам решать. А TextBox1.TabStop = False; просто делает контрол «нефокусабельным»
11 янв 2017 в 7:59
вообще для понимания тут нужны детали UX/UI, иногда после ввода текста в поле правильнее переводить фокус на кнопку ОК, например, и тп
11 янв 2017 в 9:54
ну так может лучше будет переводить фокус на кнопку «искать», если она есть, или на результаты поиска
11 янв 2017 в 10:15
Возвращаясь к нашей беседе, прежде чем беспокоить сообщество подобным вопросом, а почему бы сначала самому не разобраться, в том, что такое вообще фокус? Я не буду ставить минус, но большинство вопросов именно такие. На этом я намерен закончить нашу дискуссию.
17 янв 2017 в 10:36
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Focused — свойство, возвращающее находится ли сейчас элемент в фокусе.
Для того чтобы сфокусироваться на элементе, можно использовать winapi функцию SetFocus .
[DllImport("user32.dll")] private static void SetFocus(IntPtr Handle); void OnClick(object sender) < if((Button)sender.Name == "Button")) < SetFocus((Button)sender.Handle); >>
Или можно установить хук на WndProc, но скорее всего вам это нужно.
Подробнее о хуке WndProc на MSDN
Фокус на textbox при запуске
Есть программа, так вот. При запуске button2 в фокусе (чем меняет цвет кнопки) — что сильно не нравится. При этом фокус я не прописывал.
textBox1.Focus()
Не помогает. Не в
public form()
private void form_Load
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Автоматический фокус в TextBox при запуске программы
Пишу калькулятор. Хочу сделать так чтобы после запуска программы можно было сразу вводить выражение.
При запуске формы убрать фокус со всех элементов
Есть форма с двумя текстбоксами. При старте приложения сразу — же выделяется Textbox1 и текст.
Установить фокус при загрузке формы в TextBox
Всем привет, создал вин форму, в ней поместил TabControl, внутри которого пока что 2 TabPanel. И в.
Если в textbox введено меньше 3 символов и фокус снимается с textbox, то вывод ошибки
если в textbox введено меньше 3 символов и пользователь вышел за границы textbox то вывести ошибку.
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
Пробуй в событии формы «Shown»
Регистрация: 19.08.2017
Сообщений: 61
nstwf, TabStop false на всех элементах выставил. Сойдет такое решение.
Администратор
17032 / 13383 / 5219
Регистрация: 17.03.2014
Сообщений: 27,382
Записей в блоге: 1
Prizrac2452, отключение tabstop для всех элементов управления это плохое решение. Тем самым ты лишаешь пользователей возможности работать с клавиатуры. Правильнее изменить порядок табуляции чтобы первым был textBox1.
Порядок настраивается путем изменения свойства TabIndex или командной меню Tab Order.
Регистрация: 19.08.2017
Сообщений: 61
OwenGlendower, Я думал об этом когда менял порядок tabindex. Но в программе слишком много кнопок и текстбоксов, что мышкой выбирать проще. Если знаете — лучше скажите почему с программы слетает фокус при нажатии на 1у из кнопок. Это может быть из-за tabstop false.
Администратор
17032 / 13383 / 5219
Регистрация: 17.03.2014
Сообщений: 27,382
Записей в блоге: 1
Сообщение было отмечено Prizrac2452 как решение
Решение
Сообщение от Prizrac2452
Но в программе слишком много кнопок и текстбоксов, что мышкой выбирать проще.
Из этого не следует что нужно специально лишать пользователей возможности использовать Tab/Shift+Tab для перемещения по форме.
Сообщение от Prizrac2452
Если знаете — лучше скажите почему с программы слетает фокус при нажатии на 1у из кнопок. Это может быть из-за tabstop false.
Врядли. Что делает эта кнопка?
Регистрация: 19.08.2017
Сообщений: 61
OwenGlendower, Запускает progressbar. А под ним уже функция. Что еще странно — если нажать на любую кнопку формы — то кнопка остается цвета как при нажатии на нее (вернее сказать — наведении). Вроде это не нормально. Я пока не понимаю в чем дело.
Добавлено через 2 часа 6 минут
OwenGlendower, Я всеравно не понял в чем дело. ПО началу не замечал — так как цвет стандартный был. Сейчас чуть потемнее сделал и заметил, и сильно не нравится это. TabStop убрал но при нажатии кнопка остается гореть будто на нее наведено, но после нажатия на таб — тухнет. И всеравно дропает программу при нажатии на 1 кнопку — из сверхестественно от всех остальных — она сначала запускает прогресс бар (прямо в самом начале, а после отключает его).
Но больше напрягает цвет кнопки пока что.
Добавлено через 3 часа 4 минуты
OwenGlendower, В общем создал за пределами окна — button. Задал tabindex1. Задал остальным индексы и включил tabstop. К каждой кнопке добавил button.Focus(); . Таким образом 2х зайцев убил.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Несовпадение размера textbox при разработке и при запуске?
Здравствуйте! Помогите, пожалуйста! Такая проблема: в VisualStudio в конструкторе при разработке.
Как убрать фокус с TextBox при запуске формы
Итак, создал на форме TextBox, поместил в него текст. При запуске формы, тексто в нем автоматически.
НЕ получать фокус при запуске приложения
Здравствуйте. Подскажите как сделать так, чтобы при запуске программы окно было неактивным (фокус.
Вернуть фокус приложению при запуске стороннего приложения
Добрый день! Подскажите как вернуть фокус приложению. Из своего приложения запускаю стороннюю.
Или воспользуйтесь поиском по форуму:
Практическое руководство. Установка фокуса в элементе управления TextBox
В этом примере показано, как можно использовать метод Focus, чтобы установить фокус на элементе управления TextBox.
Создание простого элемента управления TextBox
В следующем примере на языке XAML описывается простой элемент управления TextBox с именем tbFocusMe
This is the text in my text box.
Установка фокуса на элементе управления TextBox
В следующем примере выполняется вызов метода Focus для того, чтобы установить фокус на элементе управления TextBox с именем tbFocusMe.
tbFocusMe.Focus();
tbFocusMe.Focus()
См. также
- Focusable
- IsFocused
- Общие сведения о TextBox
- Общие сведения о RichTextBox
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.