Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Need Help


Автор: AL.exe 13.5.2003, 21:17
Пожалуйста, помогите: sad.gif
1) Как привязывать горячие клавиши (VB6)
2) Какая существует команда для копирования текста из окна (Text1.text, например) в буфер обмена?
Заранее большое спасибо
confused.gif

Автор: vickr 14.5.2003, 22:39
Цитата
Пожалуйста, помогите: 
1) Как привязывать горячие клавиши (VB6)
2) Какая существует команда для копирования текста из окна (Text1.text, например) в буфер обмена?
Заранее большое спасибо


1) Если ты имеешь в виду горячие клавиши для пунктов меню то ответ следующий - открываешь MenuEditor, создаешь пункт меню и выбираешь в выпадающем списке Shortcut нужную комбинацию клавиш;
2) Пример кода:
Call Clipboard.SetText(Text1.Text)
Text2.Text = Clipboard.GetText()

Автор: AL.exe 15.5.2003, 21:54
Спасибо большое!
А можно привязывать клавиши клавиатуры к кнопкам Command?

Автор: valex13 19.5.2003, 04:09
Можно. Для этого в редакторе кода в левом списке выбери форму, а в правом списке выбери
KeyDown. VB за тебя создаст процедуру обработки клавиатуры: Должно получиться следующее
'Ура. Вышло
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

End Sub

А дальше навешиваю любые обработки.

Автор: amt 11.11.2004, 21:21
valex13

Цитата
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

End Sub


Насколько я понял в этой процедуре надо перехватываь нажатие клавиш и прописывать какоето действие.
Я так пробовал, но не получается.
При запуске формы фокус получает кокой-либо объект управления и форма не реагирует на нажатия клавишь.
Если использовать процедуру Sub Command_KeyDown(KeyCode As Integer, Shift As Integer), то можно добиться результата. Но это неудобно: приходится прописывать события для всех объектов формы, способных получить фокус.
Может я что-то не то делая? Подскажи, плиз.

Автор: -Mikle- 11.11.2004, 22:32
Установи свойство KeyPreview=True у формы, тогда все нажатия клавиш, назависимо от того какой контрол в фокусе, будут приходить сначала на форму.

Автор: amt 12.11.2004, 12:10
Еще вопрос.
Есть контрол Command1, для которого описывается событие Click.
Как сделать (не переписывая заново код для Command1_Click), что бы событие Form_KeyDown по нажатии клавиши вызывало событие Command1_Click

Автор: Akina 12.11.2004, 12:23
private sub Form_KeyDown()
call Command1_Click
end sub

smile

Автор: amt 12.11.2004, 12:29
Спасибо!!!

Автор: Akina 12.11.2004, 12:40
amt
Не налети на зацикливание обработчика ошибок...

Автор: amt 12.11.2004, 20:56
Спасибо за совет.
Код у меня не сверх замороченный и вроде крутых ошибок возникать не должно. Пока все работает.
Кстати Akina, твой код
Цитата
private sub Form_KeyDown()
call Command1_Click
end sub

я получил в тот момент когда уже сам догнал что нужно и я запустил процедуру без call. Но все равно спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)