Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Горячие клавиши в TextBox

#c_sharp #winforms


Подскажите, пожалуйста, как я могу создать горячую клавишу для текстбокса (Ctrl +
a для выделения)? Стандартно - не работает.
Есть ли событие, которое подойдет для реализации поставленной задачи?
    


Ответы

Ответ 1



Подробный ответ тут: https://stackoverflow.com/questions/15913498/select-all-shortcut-fails-when-multiline-property-is-true/15915059#15915059 Для ленивых: private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == (Keys.Control | Keys.A)) { textBox1.SelectAll(); //убираем звуковое сопровождение при нажатии клавиш e.Handled = e.SuppressKeyPress = true; } } В версии фреймворка 4.6.1 обещали исправить. Экспериментально проверил, работает как положено.

Ответ 2



Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load CorrectTextBoxes(Me) End Sub Private Sub CorrectTextBoxes(Base As Control) If Base.Controls IsNot Nothing Then For Each Ctrl As Control In Base.Controls CorrectTextBoxes(Ctrl) Dim Txt As TextBox = TryCast(Ctrl, TextBox) If Txt IsNot Nothing Then AddHandler Txt.KeyDown, AddressOf Txt_KeyDown End If Next Ctrl End If End Sub Private Sub Txt_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) If e.KeyCode = Keys.A And e.Control Then CType(sender, TextBox).SelectAll() End Sub http://bbs.vbstreets.ru/viewtopic.php?f=2&t=43995&p=6763394#p6763394

Комментариев нет:

Отправить комментарий