VB问题:用me.hide隐藏窗口后用me.show显不出来,怎么办??
我用键盘作为快捷键来控窗口的隐藏和显示:代码如下PrivateSubForm_KeyPress(KeyAsciiAsInteger)IfKeyAscii=101ThenF...
我用键盘作为快捷键来控窗口的隐藏和显示:
代码如下
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 101 Then
Form1.Show
End If
If KeyAscii = 121 Then
Me.Hide
End If
End Sub
当我按下y之后,窗口可以隐藏,但按e时显不出来!!
请问应该怎么做???
你只说原因,还没给出解决办法呀!!!
应该怎样才能实现呢??? 展开
代码如下
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 101 Then
Form1.Show
End If
If KeyAscii = 121 Then
Me.Hide
End If
End Sub
当我按下y之后,窗口可以隐藏,但按e时显不出来!!
请问应该怎么做???
你只说原因,还没给出解决办法呀!!!
应该怎样才能实现呢??? 展开
展开全部
这个问题要完美解决最好用API,首先说快捷键部分,最好注册全局热键,这样不论你窗体是否具有焦点都可以随意隐藏显示
窗体的显示隐藏用SetWindowPos
注册热键用RegisterHotKey
单键的热键用GetAsyncKeyState
我做过个程序你可以参考
如有问题可以消息我
http://tieba.baidu.com/f?kz=346258333
此程序可以对任意窗口进行显示、隐藏、永在最上、关闭等操作
支持热键。任何状态下按小键盘区的"+","-","*"可以隐藏、关闭、显示所选窗口。
两种热键技术
组合热键可以使隐藏状态的本程序窗口显示(具有防热键冲突功能)
单键热键可以操作选中的任意窗口
系统通知栏图标
窗体模块
frmMain 程序主窗口
标准模块
APIStuff 管理系统通知栏图标(添加、删除、菜单管理)
CommDlgs 不使用控件的公用对话框
HotKey 组合热键管理
modMain 主模块
窗体的显示隐藏用SetWindowPos
注册热键用RegisterHotKey
单键的热键用GetAsyncKeyState
我做过个程序你可以参考
如有问题可以消息我
http://tieba.baidu.com/f?kz=346258333
此程序可以对任意窗口进行显示、隐藏、永在最上、关闭等操作
支持热键。任何状态下按小键盘区的"+","-","*"可以隐藏、关闭、显示所选窗口。
两种热键技术
组合热键可以使隐藏状态的本程序窗口显示(具有防热键冲突功能)
单键热键可以操作选中的任意窗口
系统通知栏图标
窗体模块
frmMain 程序主窗口
标准模块
APIStuff 管理系统通知栏图标(添加、删除、菜单管理)
CommDlgs 不使用控件的公用对话框
HotKey 组合热键管理
modMain 主模块
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
新建一个Form2,输入代码
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 101 Then
Form1.Show
End If
If KeyAscii = 121 Then
Form1.Hide
End If
End Sub
然后运行Form2,再按键就可以了
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 101 Then
Form1.Show
End If
If KeyAscii = 121 Then
Form1.Hide
End If
End Sub
然后运行Form2,再按键就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是只针对当前焦点窗口的热键。。
如果Form1隐藏了,就等于失去焦点了。。
所以按热键无效的。
建议去找下写捕获键盘命令的代码。
如果Form1隐藏了,就等于失去焦点了。。
所以按热键无效的。
建议去找下写捕获键盘命令的代码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
添加一个计时器 Timer1
Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Long
Private Sub Form_Load()
Timer1.Interval = 10
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
'检查是否热键被按下
If GetAsyncKeyState(vbKeyY) Then Me.Hide
If GetAsyncKeyState(vbKeyE)Then Form1.Show
End Sub
Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Long
Private Sub Form_Load()
Timer1.Interval = 10
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
'检查是否热键被按下
If GetAsyncKeyState(vbKeyY) Then Me.Hide
If GetAsyncKeyState(vbKeyE)Then Form1.Show
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
隐藏之后,Form失去焦点,当然不会响应KeyPress事件。要首先获得焦点才行!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询