已经正常的设置了全局快捷键,在其他程序中都能响应.
但是如果在一个按钮中使用了
this.Hide();
this.ShowInTaskbar = false;,就响应不了...求高手指教.
设置快捷键的代码如下using System.Runtime.InteropServices;
[DllImport("user32.dll", SetLastError = true)]
public static extern bool RegisterHotKey(
IntPtr hWnd,
int id,
KeyModifiers fsModifiers,
Keys vk
); [DllImport("user32.dll", SetLastError = true)]
public static extern bool UnregisterHotKey(
IntPtr hWnd,
int id
);
[Flags()]
public enum KeyModifiers
{
None = 0,
Alt = 1,
Control = 2,
Shift = 4,
Windows = 8
} protected override void WndProc(ref Message m)
{
const int WM_HOTKEY = 0x0312; if (WM_HOTKEY == m.Msg)
{
switch (m.WParam.ToInt32())
{
case 101: button1.PerformClick();
break;
} } base.WndProc(ref m);
}
private void Form1_Load(object sender, EventArgs e)
{
RegisterHotKey(Handle,101,KeyModifiers.None,Keys.F9);
}
但是如果在一个按钮中使用了
this.Hide();
this.ShowInTaskbar = false;,就响应不了...求高手指教.
设置快捷键的代码如下using System.Runtime.InteropServices;
[DllImport("user32.dll", SetLastError = true)]
public static extern bool RegisterHotKey(
IntPtr hWnd,
int id,
KeyModifiers fsModifiers,
Keys vk
); [DllImport("user32.dll", SetLastError = true)]
public static extern bool UnregisterHotKey(
IntPtr hWnd,
int id
);
[Flags()]
public enum KeyModifiers
{
None = 0,
Alt = 1,
Control = 2,
Shift = 4,
Windows = 8
} protected override void WndProc(ref Message m)
{
const int WM_HOTKEY = 0x0312; if (WM_HOTKEY == m.Msg)
{
switch (m.WParam.ToInt32())
{
case 101: button1.PerformClick();
break;
} } base.WndProc(ref m);
}
private void Form1_Load(object sender, EventArgs e)
{
RegisterHotKey(Handle,101,KeyModifiers.None,Keys.F9);
}
解决方案 »
- 顶者有分!WinForms登录窗体如何自动登录
- 怎么处理。。
- 求解算法
- 菜鸟的急问题
- System.Data.OleDb.OleDbException: 找不到可安装的 ISAM 高手帮忙看下为什么出错
- 以往用C/S都是将gridview和数据集dataset绑定,能不能用gridview生成数据集??
- 关于安装DXV2_RegAddIn后如何使用的问题?
- C#在win98下处理汉字的乱码问题
- 请问用C#如何得到用毫秒,表示的系统时间?
- 请问一下WINFORM里的listbox的数据怎样向上滚动自动添加新数据的呢
- |zyciis| 一个奇怪的问题 new Tools.HtmlButton(){Name="btn"}这种写法在代码可以写,但在页面就是不行?
- 问个和虚拟方法表相关的问题
http://www.cnblogs.com/zhangyz215/archive/2009/04/17/1438141.html