Как убрать 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() где угодно, например, в конструкторе вашей формы, который содержит элемент управления для редактирования текста.

Читайте также: