c# winform父窗体定义KeyDown事件问题 在父窗体定义KeyDown事件,子窗体也定义KeyDown事件,现在子窗体执行事件后被父窗体事件覆盖了,怎么处理? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void control_KeyDown(object sender, KeyEventArgs e){ ......//子窗体事件处理 e.Handled = true;//指定上级控件不再处理此事件} 自己写个事件,当父窗体的keydown执行时,执行此事件,子窗体用新事件. 正确这样行不 this.keydown+=新的方法名字 你的代码是怎么样的?子窗体的事件不会被覆盖啊。。如果定义了一个窗体ismdicontainer=true;发现form_KeyDown()事件没有效果。。 private void 打开子窗体ToolStripMenuItem_Click(object sender, EventArgs e) { Form2 frm2 = new Form2(); //frm2.MdiParent = this; frm2.Show(); } private void Form1_KeyDown(object sender, KeyEventArgs e) { MessageBox.Show("这个是父窗体"); } private void Form2_KeyDown(object sender, KeyEventArgs e) { MessageBox.Show("这个是子窗体"); }当前窗体是form1或者form2就会执行各自的from_KeyDown 父窗体上按回车键当Tab处理,子窗体上按回车键设置文本框Focus()结果子窗体文本框按回车键后就跳到下个tab,没有在指定的窗体获取焦点 确定执行顺序,会不会是先执行的子窗体事件获得焦点,然后执行的父窗体事件,tab,所以现在这个状态,加messboxshow看看顺序. 重写子控件OnKeyDown方法确保不调用base.OnKeyDown()方法 更了一下,先执行父窗体事件,在执行子窗体,最后还是执行的父窗体tab方法,不是子窗体Focus()方法 父窗体定义KeyDown事件 if ((int)(Keys.Enter) == e.KeyChar) { SendKeys.Send("{" + Keys.Tab.ToString() + "}"); }子窗体定义KeyDown事件if (e.KeyCode == Keys.Enter && textBox1.Text.Trim().Length > 0) { textBox1.Focus(); textBox1.Clear(); } 结果运行后,子窗体没有获取到焦点,这是什么原因? vs2010 没有 ManagementObject类 求助ACTIVEX内弹出窗口的传值问题 帮忙解决个问题 怎么将csv文件导入到数据库(不用数据库导入) 操作两对表 如何获取某个表的列名并加如combox组合框? 有点困惑的问题 帮帮我 解决一个对于你们简单的问题急急急!! xml查询的问题 谢谢了 請教c#中 怎樣把 字串 轉成 表達式 C#文字绘制 C# 初学者的问题,关于IList接口
{
......//子窗体事件处理
e.Handled = true;//指定上级控件不再处理此事件
}
这样行不 this.keydown+=新的方法名字
如果定义了一个窗体ismdicontainer=true;发现form_KeyDown()事件没有效果。。 private void 打开子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
//frm2.MdiParent = this;
frm2.Show();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
MessageBox.Show("这个是父窗体");
}
private void Form2_KeyDown(object sender, KeyEventArgs e)
{
MessageBox.Show("这个是子窗体");
}
当前窗体是form1或者form2就会执行各自的from_KeyDown
子窗体上按回车键设置文本框Focus()
结果子窗体文本框按回车键后就跳到下个tab,没有在指定的窗体获取焦点
确保不调用base.OnKeyDown()方法
方法
if ((int)(Keys.Enter) == e.KeyChar)
{
SendKeys.Send("{" + Keys.Tab.ToString() + "}");
}
子窗体定义KeyDown事件
if (e.KeyCode == Keys.Enter && textBox1.Text.Trim().Length > 0)
{
textBox1.Focus();
textBox1.Clear();
}
结果运行后,子窗体没有获取到焦点,这是什么原因?