我在TextBox2的TextChanged时间中写了一个IF。当textBox1的值为空时弹出提示对话框并清空textBox2的值。

privatevoidtextBox2_TextChanged(objectsender,EventArgse){if(textBox1.Text==""){Messag... private void textBox2_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text =="")
{
MessageBox.Show("请先填写textBox1!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand);
textBox2.Text = "";
return;
}
为什么对话框会显示两次,但是显示第一次的时候就已经清空了,清空之后又显示一次对话框。我的语法错了吗?请大神正解-----在线等-----
展开
 我来答
nesta_eli
2012-09-27 · TA获得超过241个赞
知道小有建树答主
回答量:134
采纳率:100%
帮助的人:161万
展开全部
因为你在textBox2的TextChanged事件里面又写了一句
textBox2.Text = "";

这样就又触发了TextChanged事件,所以对话框自然显示了两次。
追问
那能在textBox2清空后结束IF循环吗?该怎么写。或者说有另一个方法清空textBox2吗?
追答
不知道你要做什么功能。
建议你不要使用TextChanged事件。
可以用textBox2的Enter事件,或者textBox1的Leave事件。
qiailu1314
2012-09-27 · TA获得超过523个赞
知道小有建树答主
回答量:642
采纳率:0%
帮助的人:327万
展开全部
TextChanged你用的肯定是changed 事件了 也就是说 只要你改变了textBox2的内容就触发。 你清空的时候触发了一次, 然后你下面这句textBox2.Text = ""; 又触发一次。肯定就两次了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水玲珑fs
2012-09-27
知道答主
回答量:24
采纳率:0%
帮助的人:9.2万
展开全部
在页面上鼠标请空textbox2竟如textChange事件的处理方法中,然后你再处理方法中在再次请空textbox2的数据,此时再次出发TextChanged事件,所以是两次。你可以将
textBox2.Text = ""; 去掉,就不会出现你所说的问题了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6705c13
2012-09-27 · TA获得超过801个赞
知道小有建树答主
回答量:613
采纳率:83%
帮助的人:217万
展开全部
textBox2.Text = "";
这句把值从原有内容改为了空,所以又触发了一次TextChanged事件
追问
我也知道啊 ,那能在textBox2清空后结束IF循环吗?该怎么写。或者说有另一个方法清空textBox2吗?
追答
最简单的方法,判断一下textBox2是不是为空,如果为空表示刚清空了,直接返回不要执行下面的逻辑了
if(string.IsNullOrEmpty(textBox2.Text))
return;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式