MDI模式,当打开一个窗体时,在某个TextBox回车,则会执行TextBox_PreesKey事件。
MDI模式,当打开一个窗体时,在某个TextBox回车,则会执行TextBox_PreesKey事件。当打开多个子窗体时,再在之前打开一个Form的TextBox回车,则不执行PressKey事件。
跟踪了一下代码,结果执行的是该Form的一个Button OnClick事件。为什么这样子呢?
我的Form没有设置AcceptButton属性啊。 \
看到这个问题,却没有答案,说是tabindex的设置问题,到底是怎么个设置问题!
--------------------编程问答-------------------- 你可以这样试试看,首先设置你的主窗体的TopMost属性为True
然后添加这两个事件,并且设置焦点控件为textBox1,这样能简单解决你的问题,但不知道适合你的情况,紧提供参考,http://www.guanmingle.com
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)--------------------编程问答-------------------- 设一个公共变量 int count=0;
{
if(e.KeyCode==Keys.Enter)
{
textBox1_TextChanged(new object(), new EventArgs());
}
}
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
// MessageBox.Show("show");
Form2 fr=new Form2();
fr.Show();
this.textBox1.Focus();
}
每打开一个窗体则count++
关闭则count--
然后以此来决定回车后该执行哪个事件。。。
跟tabIndex没什么关系。。 --------------------编程问答-------------------- 都不是我要的结果,我仔细描述一下
1。首先打开子窗口form1,form1中有textBox1, Button1
2。然后让button1获得焦点
3。切换到form1以外的任何其他子窗口--就是让form1失去焦点。
4。切换回form1,此时焦点仍会在Button1(此时回车Button1_Click会响应)
5。回车执行Button1_Click
6。点击textBox1,在textBox1输入数据,textBox1的keypress事件会有响应
但是回车却不行,回车执行的仍然是Button1_Click
也就是说当回车时根本不会进textBox1_KeyDown,textBox1_KeyPress事件
自然所有的判断也是无效的
--------------------编程问答-------------------- 你放两个Button后试试什么效果
是不是在窗体上将这个Button1设置成了AcceptButton
补充:.NET技术 , C#