按钮的快捷键如何设置? 业务单据窗口,设计的有一些按钮(不是菜单),如保存,修改,删除;希望可以按下CTRL+S组合键来实现保存的功能,接F2实现修改功能,等等!这个功能如何实现? 我找了半天也没有找到这个功能!先在这儿谢谢大家了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 按扭无法设置,我以前用过一个方法,就是隐形菜单来做,就是用做一个右键菜单,然后把visible设为false,然后再设置快捷键,在菜单的点击事件里调用按扭事件 private void Form1_KeyDown(object sender, KeyEventArgs e) { if(e.Control && e.KeyCode == Keys.S) MessageBox.Show("你按了CTRL和S键"); } 不怕麻烦,就自定义快捷键好了Public enum KeyModifiers{None=0,Alt=1,Control=2,Shift=4,Windows=8}//注册系统热键:[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);//定义快捷键(ctrl+S): Bool success=RegisterHotKey(Handle,100,KeyModifiers.Control,Keys.S);Protected override void WndProc(ref Message m){ const int WM_HOTKEY=0x0312; If(m.Msg==WM_HOTKEY) {ProcessHotKey(); //热键处理程序,连到button.click就可以了} Base.WndProc(ref m);} 还有简单一点的方法吗?private void Form1_KeyDown(object sender, KeyEventArgs e){ if(e.Control && e.KeyCode == Keys.S) button1_click(?,?) //问号的地方应该如何填啊?}调用的时候如何调用啊?private void button1_click(object sender, KeyEventArgs e){ MessageBox.Show("保存");} private void Form1_KeyDown(object sender, KeyEventArgs e){ if(e.Control && e.KeyCode == Keys.S) button1_click(button1,EventArgs.Empty) //问号的地方应该如何填啊?} 把form的keypriview设成true,再在form的事件中作处理不行么? 楼上的朋友:----------------------------------------------------------把form的keypriview设成true,再在form的事件中作处理不行么?----------------------------------------------------------您讲的这种方法应该如何去做? private void Form1_KeyDown(object sender, KeyEventArgs e){ if(e.Control && e.KeyCode == Keys.S) button1_click(?,?) //问号的地方应该如何填啊?}调用的时候如何调用啊?private void button1_click(object sender, KeyEventArgs e){ private void Form1_KeyDown(object sender, KeyEventArgs e){ if(e.Control && e.KeyCode == Keys.S) Function();//问号的地方应该如何填啊?}调用的时候如何调用啊?private void button1_click(object sender, KeyEventArgs e){ Function();}private void Function(){ MessageBox.Show("保存");}} protected override bool ProcessDialogKey(Keys keyData) { int altKey = Keys.Alt.GetHashCode(); if(keyData==Keys.F1) { this.SelectAll(true); return true; } if(keyData==Keys.F2) { this.SelectAll(false); return true; } if(keyData.GetHashCode() == altKey + Keys.S.GetHashCode()) { if(this.Save() == 0) { this.Print(); } return true; } if(keyData.GetHashCode() == altKey + Keys.Q.GetHashCode()) { this.Query(); return true; } if(keyData.GetHashCode() == altKey + Keys.P.GetHashCode()) { // return true; } if(keyData.GetHashCode() == altKey + Keys.X.GetHashCode()) { this.Close(); return true; } return base.ProcessDialogKey (keyData); } button的label设置为 文件(&F) --Alt+FCTRL+S组合键来实现保存的功能,接F2实现这样只有写代码了 数组 我想弄一些C#写的群发软件源码,去哪里可以弄到? 关于pos打印机通过tcp/ip操作打印指令集 字典类的插入顺序 一个Remoting问题,调用后客户端没反应了 非常郁闷~~~ 非常急 在线等啊 (急)求助:用API函数设置了数字证书密码,触发点击确定时却提示请输入密码! 请问,.aspx,.ascx,.asmx,.asax几个后缀,有什么区别呀? C# 访问临时文件被拒绝 刚学c# 请问,怎么在一个窗口里打开另一个窗口? [求助]关于类库的一点问题 文件读取问题!
{
if(e.Control && e.KeyCode == Keys.S)
MessageBox.Show("你按了CTRL和S键");
}
Public enum KeyModifiers{None=0,Alt=1,Control=2,Shift=4,Windows=8}
//注册系统热键:
[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);
//定义快捷键(ctrl+S):
Bool success=RegisterHotKey(Handle,100,KeyModifiers.Control,Keys.S);
Protected override void WndProc(ref Message m)
{ const int WM_HOTKEY=0x0312;
If(m.Msg==WM_HOTKEY)
{ProcessHotKey(); //热键处理程序,连到button.click就可以了
}
Base.WndProc(ref m);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if(e.Control && e.KeyCode == Keys.S)
button1_click(?,?) //问号的地方应该如何填啊?
}调用的时候如何调用啊?private void button1_click(object sender, KeyEventArgs e)
{
MessageBox.Show("保存");}
{
if(e.Control && e.KeyCode == Keys.S)
button1_click(button1,EventArgs.Empty) //问号的地方应该如何填啊?
}
把form的keypriview设成true,再在form的事件中作处理不行么?
----------------------------------------------------------
您讲的这种方法应该如何去做?
{
if(e.Control && e.KeyCode == Keys.S)
button1_click(?,?) //问号的地方应该如何填啊?
}调用的时候如何调用啊?private void button1_click(object sender, KeyEventArgs e)
{
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if(e.Control && e.KeyCode == Keys.S)
Function();//问号的地方应该如何填啊?
}调用的时候如何调用啊?private void button1_click(object sender, KeyEventArgs e)
{
Function();}private void Function()
{
MessageBox.Show("保存");
}
}
{
int altKey = Keys.Alt.GetHashCode(); if(keyData==Keys.F1)
{
this.SelectAll(true);
return true;
}
if(keyData==Keys.F2)
{
this.SelectAll(false);
return true;
}
if(keyData.GetHashCode() == altKey + Keys.S.GetHashCode())
{
if(this.Save() == 0)
{
this.Print();
}
return true;
}
if(keyData.GetHashCode() == altKey + Keys.Q.GetHashCode())
{
this.Query();
return true;
}
if(keyData.GetHashCode() == altKey + Keys.P.GetHashCode())
{
//
return true;
}
if(keyData.GetHashCode() == altKey + Keys.X.GetHashCode())
{
this.Close();
return true;
}
return base.ProcessDialogKey (keyData);
}