Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic - Трюки и Хитрости, советы и ответы на вопросы


Служба Рассылок Subscribe.Ru проекта Citycat.Ru
VB Хитрости - советы и ответы на вопросы

Здравствуйте, уважаемые читатели.

Несколько советов на сегодня:

1. Известно ли вам, что обычные кнопки имеют свойства Default и Cancel
причем выставить значение True можно одновременно только у одного
Свойство Default выставленное True заставляет случаться эвент Click у кнопки при нажатии Enter в любом месте формы. Соотвественно свойство Cancel реагирует так же на нажатие Escape. Ну и как следствие не рекомендую устанавливать Default = true если на форме есть контролы требующие ввода переноса строки, например текстбокс в режиме мультилайн. Кнопка будет нажата при нажатии enter и пользователь может огорчиться :-)

2.Думаю временами всем нам не хватает в контролах какой -либо мелочи.
К примеру какие -то действия при использовании текстбокса. Решение есть - можно написать процедуру и вызывать е как эвент для контролов. Собственно именно для этого и существует команда "WihEvents"

К примеру хочется ограничить ввод в текстбокс только символов в верхнем регистре. Буквы в нижнем регистре должны быть автоматически преобразованы в верхний. Ну и еще при проходе мышки над текстбоксом - путь показывает координаты мышы в тултипсе

Создаем стандартный EXE project, добавляем 4 текстбокса , добавляем class module. В Form1 добавляем код

'General Declarations
Private clsTextBox1 As Class1
Private clsTextBox2 As Class1
Private clsTextBox3 As Class1
Private clsTextBox4 As Class1

Private Sub Form_Load()
Set clsTextBox1 = New Class1
Set clsTextBox1.TextBoxCtl = Text1
Set clsTextBox2 = New Class1
Set clsTextBox2.TextBoxCtl = Text2
Set clsTextBox3 = New Class1
Set clsTextBox3.TextBoxCtl = Text3
Set clsTextBox4 = New Class1
Set clsTextBox4.TextBoxCtl = Text4
End Sub


В Class1, добавим следующий код .

Private WithEvents txt As TextBox

Public Property Set TextBoxCtl(OutsideTextBox As TextBox)
Set txt = OutsideTextBox
End Property

Private Sub txt_KeyPress(KeyAscii As Integer)
'-- Преобразуем в верхний регистр
KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
End Sub

Private Sub txt_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
txt.ToolTipText = "X:" & X & " Y:" & Y
End Sub


Чтобы добавить что то еще - просто добавьте код в класс.
Единственно что - эвент в классе случается после эвента в контроле.

 

Хочу поставить в известность всех подписчиков этого листа - лист создается в html , а потом автоматом на Ситикоте из него создается текстовый вариант. Так что, если вы, по ошибке, подписались на текстовую версию - рекомендую изменить этот параметр, так как за качество конвертации я не отвечаю, а создавать отдельную версию у меня не хватает времени. Сорри.

 

 

 

Успехов в программировании!

Борис Рудой

Автор сайта - Visual Basic на русском



http://subscribe.ru/
E-mail: ask@subscribe.ru
Поиск

В избранное