windows forms 无法捕获回车键 试了下,如果窗体上没有控件,那么你设置窗体的keyDown是可以捕捉到的。如果窗体上有控件,那么焦点也好像没法到窗体上。。好像也没有为窗体设置焦点的属性。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public partial class Form1 : Form { public Form1() { InitializeComponent(); Load +=new EventHandler(Form1_Load);//添加窗体加载事件 } private void Form1_Load(object sender, EventArgs e) { KeyDown += new KeyEventHandler(Form1_KeyDown);//添加按键事件 } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { e.Handled = true; //将Handled设置为true,指示已经处理过KeyPress事件 button2_Click(sender, e); } } } public partial class Form1 : Form { public Form1() { InitializeComponent(); Load +=new EventHandler(Form1_Load);//添加窗体加载事件 } private void Form1_Load(object sender, EventArgs e) { KeyDown += new KeyEventHandler(Form1_KeyDown);//添加按键事件 } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { e.Handled = true; //将Handled设置为true,指示已经处理过KeyPress事件 button2_Click(sender, e); } } }非要手动添加么? 也可以通过WndProc监听窗体消息来做 可以把From的keydown事件,同时放在label或其它控件上 因为你的按键动作并不在窗体上,所以监控不到你试试label上的事件 只有你的焦点在form1上才会获取到其次控件貌似还有事件冒泡的 在视图设计器中将所有控件的TabStop属性设为false。好蠢的方法。呵呵。 注意,并不是所有对象都可以接收焦点,某些控件例如框架 (Frame) 、标签 (Label) 、菜单 (Menu) 、直线 (Line) 、形状 (shape) 、图像框 (Image) 和计时器 (Timer) 都不能接收焦点。对于窗体来说,只有当窗体上的任何控件都不能接收焦点时,该窗体才能接收焦点。 private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { MessageBox.Show("Test"); } }我这样写都没有反应 但是点击窗体上的某个按钮后,forms又不能接收焦点了 来吧,我要帮你结贴了。1、先将窗体的KeyPreview属性设置为true;2、放置一个透明的label;3、为窗体添加Click事件: private void Form_Click(object sender, EventArgs e) { label.Focus(); } 可是在我点击按钮后,还是无法接收键盘事件这按钮点击事件的末尾加上 label.Focus(); 窗体属性中有键盘注册事件,改为true 求救!!! 类、静态域、静态方法 问大家一个问题,简单的, c#实现数据备份 简单的问题 如何遍历gridview里的HyperLink,设置Enabled = false? 请高人看下这段代码 c# 在创建excel sheet时为什么会失败? 万分感谢,,,,,,请告诉我一个好点的vs.net2003中文版下载地址?? 如何在ListView控件中自动排序 c# webkit浏览器源码谁有吗 简明扼要。。。。。问个简单的小白问题,datagridview设计的时候,怎么样达到这个效果,,代码或者直接属性设置都行,,求指导 删除GridView内容时弹出询问框老是出错,什么原因,谢谢!
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Load +=new EventHandler(Form1_Load);//添加窗体加载事件
}
private void Form1_Load(object sender, EventArgs e)
{
KeyDown += new KeyEventHandler(Form1_KeyDown);//添加按键事件 }
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.Handled = true; //将Handled设置为true,指示已经处理过KeyPress事件
button2_Click(sender, e);
} }
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Load +=new EventHandler(Form1_Load);//添加窗体加载事件
}
private void Form1_Load(object sender, EventArgs e)
{
KeyDown += new KeyEventHandler(Form1_KeyDown);//添加按键事件 }
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.Handled = true; //将Handled设置为true,指示已经处理过KeyPress事件
button2_Click(sender, e);
} }
}
非要手动添加么?
你试试label上的事件
其次控件貌似还有事件冒泡的
好蠢的方法。呵呵。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Test");
} }
我这样写都没有反应
但是点击窗体上的某个按钮后,forms又不能接收焦点了
1、先将窗体的KeyPreview属性设置为true;
2、放置一个透明的label;
3、为窗体添加Click事件: private void Form_Click(object sender, EventArgs e)
{
label.Focus();
}
可是在我点击按钮后,还是无法接收键盘事件
这按钮点击事件的末尾加上 label.Focus();