Как убрать фокус с textbox c
Разработчик Offline Client
ICQ: 233286456
ICQ: 299287824
Разработчик Offline Client
ICQ: 233286456
ICQ: 299287824
Разработчик Offline Client
ICQ: 233286456
ICQ: 299287824
Public Sub TextBox1_Changed(sender As Object, e As System.EventArgs) _
Handless TextBox1.Changed
TextBox1.Tag=True
End Sub
Когда ты сам хочешь изменить текст из программного кода пиши:
Dim boolTemp as Boolean=CType(TextBox1.Tag, Boolean)
TextBox1.Text=»Hello World!»
TextBox1.Tag=boolTemp
Как грамотно убрать фокус с TextBox?
Всем доброе утро. Как грамотно убрать фокус с TextBox? Свойство Focused для данного контрола доступно только для чтения. Как вариант устанавливаю фокус на label, но на сколько это правильно — не знаю.
Отслеживать
задан 11 янв 2017 в 6:41
Александр Пузанов Александр Пузанов
2,785 3 3 золотых знака 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
Доброго времени суток.
Вопрос такой, как же всё же правильно убирать фокус с TextBox?
Я думаю стоит убирать фокус с TextBox в любом случае, если пользователь не нажал ещё раз на TextBox.
Думаю такой вариант будет самый правильный.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Убрать фокус с textbox
Добрый день. Ситуация такова: имеется 3 textbox’a, при запуске фокус устанавливается на 1 textbox.
Фокус ввода TextBox
Тема легкая вопрос посложней: Как забиндить фокус ввода на текстбокс с другого элемента используя.
DataGrid. Убрать фокус со строки
DataGrid состоит например из 2 строк. Не получается сделать, чтобы при нажатие не на строку(то.
Как убрать/поставить фокус на элементе?
у меня есть обработчик события public void KeyDown_Event(object sender, KeyEventArgs e) .
![]()
15238 / 10356 / 2721
Регистрация: 21.04.2018
Сообщений: 30,670
Записей в блоге: 2
L1onelY, вы о чём, вообще?
Регистрация: 01.12.2019
Сообщений: 284
Элд Хасп, о том, что когда пользователь нажал на TextBox, и ввёл текст, и потом нажал на любое место в приложение, чтобы сбрасывать фокус с TextBox’a
![]()
15238 / 10356 / 2721
Регистрация: 21.04.2018
Сообщений: 30,670
Записей в блоге: 2
L1onelY, понял — это продолжение холивара другой темы.
Я уже писал, на мой взгляд, такое поведение нигде не используется, поэтому для обычного пользователя оно будет неожиданным, непривычным.
И это, скорее всего, будет влиять негативно на восприятие и оценку приложения в целом.
1564 / 573 / 180
Регистрация: 05.12.2015
Сообщений: 925

Сообщение было отмечено Элд Хасп как решение
Решение
L1onelY, буквально как ты написал можно так:
1. определи в Window (только в Window. ) событие: PreviewMouseDown=»globalMouseDown»
2 обработчик
1 2 3 4 5 6 7 8
private void globalMouseDown( object sender, MouseButtonEventArgs e ) { if( Keyboard.FocusedElement is TextBox felem ) if( sender != felem ) // раскомментируй эту строку ниже чтоб фокус передавался следующему //if( !felem.MoveFocus( new TraversalRequest( FocusNavigationDirection.Next ) ) ) Keyboard.ClearFocus(); }
![]()
15238 / 10356 / 2721
Регистрация: 21.04.2018
Сообщений: 30,670
Записей в блоге: 2
proa33, как я понял из вопроса Я думаю стоит убирать фокус . Думаю такой вариант будет самый правильный. , вопрос не в реализации, а в правильности, полезности подобной фичи в GUI.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
При открытии окна установить фокус на TextBox
Я в полном отчаянии. Я уже полностью запуталась и с MVVM, WPF, MVVM Light. В общем мне нужно, чтоб.

Как убрать фокус из TextBox
Есть обычная форма с одним TextBox Нужно чтоб при нажатии левой кнопкой мыши на любое пустое место.
Если в textbox введено меньше 3 символов и фокус снимается с textbox, то вывод ошибки
если в textbox введено меньше 3 символов и пользователь вышел за границы textbox то вывести ошибку.
убрать фокус с кнопки
проблема в следующем. во фрэймовой системе есть страница menu-фрэйм выбора типов.
Убрать фокус у кнопок
подскажите как сделать кнопки без фокуса?
Убрать фокус с MessageBox
Добрый вечер всем. Пишу игру в которой пользователь жмёт на Space, в какой-то момент ему вылетает.
Как убрать фокус с textbox c
Подскажите как сделать. Есть программа, висит в трее, через заданное время она выводится на экран.
Вопрос: как сделать чтоб когда она выводится, то не забирала фокус с активного окна(чтоб если я что то печатаю то я не начал печатать в открывшимся окне а продолжил там где начал).
Пользователь
Регистрация: 01.07.2011
Сообщений: 21
Если оба окна из одной твоей программы, тогда при выводе окна из трея вызывай Focus() для окна, в котором печатаешь.
Если печатаешь в любом другом окне, то перед выводом из трея получи дескриптор этого окна с помощью WinAPI-функции GetForegroundWindow и после вывода из трея верни ему фокус с помощью SetForegroundWindow
Пользователь
Регистрация: 12.03.2010
Сообщений: 47
Сообщение от VikaR
Если печатаешь в любом другом окне, то перед выводом из трея получи дескриптор этого окна с помощью WinAPI-функции GetForegroundWindow и после вывода из трея верни ему фокус с помощью SetForegroundWindow
А можно пример?
Пользователь
Регистрация: 12.03.2010
Сообщений: 47
Сообщение от VikaR
Если оба окна из одной твоей программы, тогда при выводе окна из трея вызывай Focus() для окна, в котором печатаешь.
Если печатаешь в любом другом окне, то перед выводом из трея получи дескриптор этого окна с помощью WinAPI-функции GetForegroundWindow и после вывода из трея верни ему фокус с помощью SetForegroundWindow
сделал так
IntPtr hFore; hFore = GetForegroundWindow(); Show(); SetForegroundWindow(hFore);
все равно не работает.
Форумчанин
Регистрация: 17.12.2008
Сообщений: 250
интернет говорит
http://stackoverflow.com/a/157843
public class MyForm:Form < protected override bool ShowWithoutActivation < get < return true; >> >
Пользователь
Регистрация: 12.03.2010
Сообщений: 47
Сообщение от Reskov
интернет говорит
http://stackoverflow.com/a/157843
public class MyForm:Form < protected override bool ShowWithoutActivation < get < return true; >> >
Все равно при открытии окна фокус переходит в textbox я продолжаю печать уже в него
Форумчанин
Регистрация: 17.12.2008
Сообщений: 250
Вы открывали ссылку?? там в ответах на коментарий на выделенный коментарий
| I also needed to set form1.Enabled = false to prevent inner controls from stealing focus And leave TopMost off. |
либо попробуйте другой способ из ответов на ссылке, там же масса вариантов, а потом обязательно отпишите какой помог Вам
Последний раз редактировалось Reskov; 27.06.2012 в 15:56 .