如题:
在工作中我遇到两种怀况下会出现这样的情况:
1. 在一个MdiChild窗体(假设为A窗体)中有几个TextBox和几个按钮,其中一个按钮的Click事件是显示另一个MdiChild窗体(假设为B窗体)的.当点击该按钮显示B窗体后,不关闭B窗体,把焦点回到A窗体中的TextBox中,如果按回车,会调用按钮的Click事件!! TextBox根本就捕捉不到回车键. (TextBox的回车是实现焦点跳转的).这种情况大家都可以写个很简单的代码测试一下就知道了.2.在一个MdiChild窗体(假设为A窗体)中有几个TextBox和几个按钮,其中一个按钮的Click事件是检查窗体中数据是否完整以及保存数据的,如果有栏位的值不符合要求,则给予提示且不让保存.出现提示后,把焦点转移到相应的TextBox中,录入正确的数据后回车,它有时会响应按钮的Click事件,但同样的操作在重新打开窗体后就不会了.当然这样的情况很少遇到...为什么会出现这样的情况?难道又是.net的Bug. 我发觉.net的Bug多多...
在工作中我遇到两种怀况下会出现这样的情况:
1. 在一个MdiChild窗体(假设为A窗体)中有几个TextBox和几个按钮,其中一个按钮的Click事件是显示另一个MdiChild窗体(假设为B窗体)的.当点击该按钮显示B窗体后,不关闭B窗体,把焦点回到A窗体中的TextBox中,如果按回车,会调用按钮的Click事件!! TextBox根本就捕捉不到回车键. (TextBox的回车是实现焦点跳转的).这种情况大家都可以写个很简单的代码测试一下就知道了.2.在一个MdiChild窗体(假设为A窗体)中有几个TextBox和几个按钮,其中一个按钮的Click事件是检查窗体中数据是否完整以及保存数据的,如果有栏位的值不符合要求,则给予提示且不让保存.出现提示后,把焦点转移到相应的TextBox中,录入正确的数据后回车,它有时会响应按钮的Click事件,但同样的操作在重新打开窗体后就不会了.当然这样的情况很少遇到...为什么会出现这样的情况?难道又是.net的Bug. 我发觉.net的Bug多多...
我测试过了,没有问题。
textbox的回车好像没有焦点跳转的吧?除非是自己写的textbox。
TextBox t=new TextBox();
t.KeyDown+=new KeyEventHandler(OnTxtBoxKeyPress);protected void OnTxtBoxKeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r' && textBox.Text.Length > 0)
{
textBox.Clear();
e.Handled = true;
}
}
测试过没有问题。应该是你自己代码的问题,再检查一下。有什么问题出现老是认为是.Net的Bug,多查查自己的程序。
现在的bug贴一天比一天多。下回直接发给微软得了,不要发在这了。
你们用代码测试过了吗? A,B两个窗体都是MdiChild窗体哦...
显示B窗体后,回到A窗体,在TextBox中按回车根本就不触发keydown事件!!!感觉焦点在按钮上似的,但输入可见字符是可以的
qq:3081309。
Form1为主窗体,Form2,Form3为子窗体,其中Form3只是个空窗体而已.在Form2中放两个Textbox和一个Button.这个Button的Click事件上写上下面的代码:
private void button1_Click(object sender, System.EventArgs e)
{
for(int i =0;i<this.MdiParent.MdiChildren.Length;i++)
{
if(this.MdiParent.MdiChildren[i].Name == "Form3")
{
this.MdiParent.MdiChildren[i].Show();
this.MdiParent.MdiChildren[i].Activate();
return;
}
}
Form3 f = new Form3();
f.Name = "Form3";
f.MdiParent = this.MdiParent;
f.Show();
}
很简单的代码...在不关闭Form3的情况下,回到Form2的文本框中按回车,你们测试一下会出现什么样的情况,可以查看它是否有触发文本框的Keydown事件?
这个当然没有设置啦....
其实测试代码很简单啊,大家可以试一下.Copy我上面的代码,两分钟就可以测试出来了
麻烦各位用我上面的代码测试一下,简单得不能再简单的代码了,花个两三分钟就可以测试了
不可能是微软的问题。。偶们为了实现这个功能——输入框回车等同按钮单击——都是人工写代码的!
写了N处,绝不可能是微软的bug(假如是那也是画蛇添足一类的吧)di!
if 全部textbox.tabindex<button1.tablindex
min tabindex 的textbox keyenter 会造成form3 show
//2
else if 全部textbox.tabindex<button1.tablindex
min tabindex 的textbox keyenter 会造成form3 show
//3
else
米有任何textbox keyenter 会操成form3 show
================
菜鸟的报告完毕。。吼吼。。
To:sfanpu(Erick Shuai),你做什么样的测试?注意了,是MDIChild窗体哦....
帮我UP一下UP有分的哦....