Visual Basic - Трюки и Хитрости, советы и ответы на вопросы.
Не приходилось переживать по поводу того, что текстбокс
по правому клику возвращает свой стандартное PopUP меню?
Рекомендую совет, позволяющий создать собственное меню,
замещаюшее стандартное.
На форму положите текстбокс,
откройте menu editor и создайте меню верхнего уровня.
В моем примере это меню имеет имя tst
Это меню должно иметь столько подменю
(второго или более вложенного уровня) - скoлько вам нужно
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Button = 2 Then
Text1.Enabled = False
PopupMenu tst
Text1.Enabled = True
End If
End Sub
===========================================================
Раз уж заговорили о текстбоксах, продолжим - Бипанье текстбокса при вводе
Enter может изрядно утомить пользователя. Особенно если вы используете
навигацию по ряду текстбоков с помошью Enter (Заменяя им нажатие TAB)
Нижележащий код позволит избежать ненужных звуков
Sub Text1_KeyPress (KeyAscii As Integer)
If KeyAscii = 13 Then '13 is Key_Return
KeyAscii = 0 '0 is nothing
End If
End Sub
===========================================================
Выше я упомянул о навигации между текстбоксами (или просто полями воода на
фоме, например это могут быть комбобоксы, различные гриды итд)
Вот несложный код, позволяющий переходить от контрола к контролу в
порядке их TabOrder
Установите свойство фромы KeyPreviw = True
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If TypeOf Screen.ActiveControl Is TextBox Then
SendKeys "{TAB}"
End If
End If
End Sub