Как убрать system windows forms textbox
Обновлено: 30.06.2024
Главная > Как скрыть каретку ввода в System.Windows.Forms.TextBox?
Как скрыть каретку ввода в System.Windows.Forms.TextBox?
Мигающая каретка ввода вводит в заблуждение. Как мне это скрыть?
Если вы отключите текстовое поле (установите Enable=false ), текст в нем все еще можно прокручивать и выбирать. Если вам не нравится визуальное представление отключенного текстового поля (обычно на сером фоне), вы можете вручную переопределить цвета.
Имейте в виду, что при ручном переопределении цветов ваша форма / элемент управления будут выглядеть странно в системах, которые не используют настройки цвета / темы по умолчанию. Не думайте, что из-за того, что ваш контроль белый, контроль каждого будет белым. Вот почему вы всегда должны использовать системные цвета, когда это возможно (определено в перечислении System.Drawing.SystemColors ), например SystemColors.ControlLight .
Нет, его нельзя выбрать (или прокрутить), если текстовое поле отключено. Вы, вероятно, думаете сделать его доступным только для чтения.
AFAIK, это невозможно . Элемент управления TextBox представляет собой забавный элемент управления, потому что на самом деле он имеет поведение lot , которое нельзя изменить из-за того, как он подключается к операционной системе. Вот почему многие классные текстовые поля написаны с нуля.
Боюсь, вы не сможете делать то, что хотите: (
Вы можете сделать это посредством вызова win32
При использовании вызова win32 не забудьте скрыть курсор в событии GotFocus текстового поля.
Спасибо за это! Я перепробовал все, даже событие Enter, но оно не работает, но этот делает работу!
Просто для полноты мне понадобилась такая функциональность для использования с DevExpress WinForms TextEdit контроль .
Они уже предоставляют метод ShowCaret и HideCaret , к сожалению, они защищены. Поэтому я создал производный класс, который обеспечивает функциональность. Вот полный код:
Чтобы использовать код, просто используйте производный класс вместо исходного класса TextEdit в своем коде и вызывайте DoHideCaret() где угодно, например, в конструкторе вашей формы, который содержит элемент управления для редактирования текста.
Читайте также: