C#Winfrom中,窗体加载时会自动执行一次控件的textchange事件,怎么让它不执行?

如题所述

你应该是在加载窗体时为文本框赋值了。
你可以:
1.把绑定事件的代码放到赋值之后
public Form1()
{
InitializeComponent();

textBox1.Text = "123";
this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);//同时去掉InitializeComponent中的绑定代码
}
2.添加一个标记标量用于标识是不是正在加载数据:
private bool m_IsLoading = false;
public Form1()
{
InitializeComponent();

m_IsLoading = true;
textBox1.Text = "123";
m_IsLoading = false;

}

private void textBox1_TextChanged(object sender, EventArgs e)
{
if (!m_IsLoading)
{
MessageBox.Show("123");
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-27
删除事件就可以了
方法是选中有这个事件的控件属性事件删除就可以了
第2个回答  2011-01-27
设立一个标志,来判断是否是加载时触发的textchange事件,如果是,就不执行textchange
如果不是就执行textchange
第3个回答  2011-01-27
对带有textchange事件的文本框设置一个默认值,在窗体登录时对该文本框赋值,内容为默认值.
第4个回答  2011-02-02
在代码中删除textchange事件调用的方法就好了呀
相似回答