Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Вызов формы клавишей Добавлено: 16.07.06 15:45  

Автор вопроса:  Новиков Вячеслав | Web-сайт: www.auta.ru
Здравствуйте!
Мне требуется помощь. Я программирую на VB5. Я хотел бы узнать, как сделать так, чтобы при нажатии одной кнопки на клавиатуре (например, A) открывалась одна форма, а при нажатии другой клавиши (например, S) - другая форма и т.д. Всего должно быть более 30 форм, которые должны вызываться нажатием клавиши. Заранее благодарен за ответ!

С уважением,
Новиков Вячеслав
E-mail: info@auta.ru

Ответить

  Ответы Всего ответов: 18  

Номер ответа: 1
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #1
Добавлено: 16.07.06 15:58
Что то типа этого:

Option Explicit

Private Declare Function GetAsyncKeyState _
    Lib "user32" (ByVal vKey As Long) As Integer
Const VK_RETURN = &HD

Private Sub Form_Load()
Timer1.Interval = 100
Me.Visible = False
End Sub

Private Sub Timer1_Timer()
   If GetAsyncKeyState(VK_RETURN) Then
        Me.Visible = True
   End If
End Sub


Ответить

Номер ответа: 2
Автор ответа:
 Новиков Вячеслав



Вопросов: 1
Ответов: 3
 Web-сайт: www.auta.ru
 Профиль | | #2
Добавлено: 16.07.06 16:13
Здравствуйте, Root!
Спасибо за ответ! Но предоставленный Вами код не совсем то, что мне надо. Мне требуется, чтобы при нажатии на одну клавишу (например, A) открывалась Form1, при нажатии другой клавиши - Form2, при нажатии третьей кнопки - Form3, при нажатии еще какой-нибудь клавиши - Form4 и т.д. Благодарен за ответ!

Ответить

Номер ответа: 3
Автор ответа:
 ENIX



ICQ: 238819245 

Вопросов: 9
Ответов: 76
 Профиль | | #3 Добавлено: 16.07.06 18:08

Option Explicit

Private Declare Function GetAsyncKeyState _
    Lib "user32" (ByVal vKey As Long) As Integer
 
Private Sub Timer1_Timer()
 Selct Case GetKeyB
  Case Is = &H41: Timer1.Enabled=False: .....
  Case Is =
 End Select
'A-&H41
'Z-&H5A
End Sub


Function GetKeyB() as Integer
 Dim Num&
 For Num = 32 To 128
  If GetAsyncKeyState(Num) <> 0 Then
   GetKeyB = Num
    Exit For
  End If
 Next
End Function


Типа того...не уверен..

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 16.07.06 19:34
шо вы GetAsyncKeyState пристали? Коль формы дёргаться постоянно будет - загрузить все сразу, и .Hide их. Далее на каждой форме сделать меню, тоже ео vivible=false, а в меню можно назнать "горячую кнопку"

Ответить

Номер ответа: 5
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #5 Добавлено: 16.07.06 20:22
мона ещё круче — юзать (Un)RegisterHotKey, а потом ловить WM_HOTKEY)))

Ответить

Номер ответа: 6
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #6 Добавлено: 16.07.06 20:23
а вот у меня возник вопрос — для чего используются более 30 форм? что за варварство? Аффтар, скажите, plz, цель всего этого.

Ответить

Номер ответа: 7
Автор ответа:
 Новиков Вячеслав



Вопросов: 1
Ответов: 3
 Web-сайт: www.auta.ru
 Профиль | | #7
Добавлено: 17.07.06 00:55
Спасибо за ответы! Если есть еще варианты, то, пожалуйста, пришлите их. Спасибо!

Ответить

Номер ответа: 8
Автор ответа:
 LeX



ICQ: 301424893 

Вопросов: 28
Ответов: 277
 Web-сайт: www.vbkoders.info
 Профиль | | #8
Добавлено: 17.07.06 10:28
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = Asc("C";) Then Form2.Show
End Sub

Что-то типа этого. только вместо "С" ставишь ту клавишу, которую тебе надо.

Ответить

Номер ответа: 9
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #9
Добавлено: 17.07.06 17:46
Насчет Form_KeyDown - этот код будет работать только когда прога активна.

Ответить

Номер ответа: 10
Автор ответа:
 LeX



ICQ: 301424893 

Вопросов: 28
Ответов: 277
 Web-сайт: www.vbkoders.info
 Профиль | | #10
Добавлено: 17.07.06 17:57
Понятно. Представь себе такую ситуацию. Человек на сайте вводит свои регистрационные данные(к примеру) и вдруг при нажатии на букву "А" открывается посторонняя форма, совсем не нужная в данный момент. Так что это оптимальный вариант.

Ответить

Номер ответа: 11
Автор ответа:
 ENIX



ICQ: 238819245 

Вопросов: 9
Ответов: 76
 Профиль | | #11 Добавлено: 17.07.06 18:14
чё Будет весело)))
Это пусть решает автор. А вообще 30 - это убиться можно!

Ответить

Номер ответа: 12
Автор ответа:
 LeX



ICQ: 301424893 

Вопросов: 28
Ответов: 277
 Web-сайт: www.vbkoders.info
 Профиль | | #12
Добавлено: 17.07.06 18:20
...более 30 форм...

Это еще лучше:) Главное - не меньше :D

Ответить

Номер ответа: 13
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #13 Добавлено: 17.07.06 19:03
Я учёт товара на складе писал, у меня больше 20 было... все нужные...

Ответить

Номер ответа: 14
Автор ответа:
 LeX



ICQ: 301424893 

Вопросов: 28
Ответов: 277
 Web-сайт: www.vbkoders.info
 Профиль | | #14
Добавлено: 17.07.06 19:10
Бывает конечно и такое, но редко... В играх в основном.

Ответить

Номер ответа: 15
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #15 Добавлено: 17.07.06 19:35
так вот я и спрашиваю для чего стока форм. Может аффтар чего-то намудрил, а мож действительно все нужные. По крайней мере мы этого не узнаем, пока не скажет аффтар.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам