重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
看了很多这方便的解决方案,很多都是一大段代码,版本也有差别,既然有可能别人用得起我也用不起。
目前创新互联建站已为1000+的企业提供了网站建设、域名、虚拟空间、网站托管、服务器托管、企业网站设计、南康网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
我用一种最简单的方法,只要思路对所有人都能用得起。
其实非常简单,就是获取键值,Ctrl+Enter的健值是10,是不是思路一下就通了。以下是源码:
Private Sub 聊天输入框_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles 聊天输入框.KeyPress
If Asc(e.KeyChar) = 发送快捷键值 Then
发送消息过程()
End If
End Sub
源内容出处:
不清楚热键和快捷键是什么区别
1.如果你是指Chrl+S这样的快捷键,可以设置ShortCutKeys属性,属性窗口就有可视化编辑器。
2.如果你是指"保存(S)",其中s有下划线这样的用Alt+字母来访问的设置,应该在菜单项的Text属性中使用符号。符号后面的字母将被作为快速访问字符,显示的时候不会被显示出来,而字母会自动加上下划线。比如"保存(s)"。
3.和选中标记有关的属性有两个
CheckOnClick 在菜单项上单击时是否改变Checked属性
Checked 设置/获取 菜单项是否被选中
4.设置菜单项的Enabled属性为False
如果是用Alt组合健,最简单的方法就是,在按钮的Text属性里加个符合,比如想用Alt+A来控制Button1的话,就在Button1的Text属性上加一个A即可。比如Text属性是“我是按钮(A)”,如图所示,那么在按下Alt+A就可以执行Button1_Click命令了,呵呵
vb.net全局热键无效可以解决。
读取键盘操作时绕过了windows的消息机制,而使用DirectInput。需要注册全局热键。
因为窗体的焦点发生了转移,当焦点不在游戏人物操作的那个窗体的时候,是没办法向这个窗体发送模拟按键信息的。
直接设置貌似不行 可以在窗体的 KeyDown事件里面写Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("快捷键设置成功")
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.Shift And e.KeyCode = Keys.C Then
Button1_Click(sender, e)
End If
End Sub
End Class
见下面的代码
Public Class Form1
Public Declare Auto Function RegisterHotKey Lib "user32.dll" Alias "RegisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Boolean
Public Declare Auto Function UnRegisterHotKey Lib "user32.dll" Alias "UnregisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer) As Boolean
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'注册全局热键
RegisterHotKey(Handle, 0, 0, Keys.F4)
'第3个参数意义: 0=nothing 1 -alt 2-ctrl 3-ctrl+alt 4-shift 5-alt+shift 6-ctrl+shift 7-ctrl+shift+alt
End Sub
Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
UnRegisterHotKey(Handle, 0)
End Sub
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = 786 Then
Me.Activate()
End If
MyBase.WndProc(m)
End Sub
End Class