当前位置:编程学习 > C#/ASP.NET >>

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)
{
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();
}
--------------------编程问答-------------------- 设一个公共变量 int count=0;
每打开一个窗体则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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,