IDE:Visual Studio 2010,C#.net应用程序,winforms
我很惊讶这段代码 Code-1 工作正常
ErrorProvider ef = new ErrorProvider();
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text == string.Empty)
{
ef.SetError(textBox1, "asdf");
}
else
{
ef.Clear();
}
}
但此代码代码2 :
private void textBox1_TextChanged(object sender, EventArgs e)
{
ErrorProvider ef = new ErrorProvider(); //changes is here
if (textBox1.Text == string.Empty)
{
ef.SetError(textBox1, "asdf");
}
else
{
ef.Clear();
}
}
没有工作,即它没有提供错误处理设施。任何人都可以告诉我这两个代码之间有什么区别的确切原因。为什么第二个代码不能正常工作..
答案 0 :(得分:2)
在 code1 中,您可以在事件处理程序范围之外创建ef
对象,这样在处理事件后ef
对象仍然存在,其中< strong> code2 处理事件后,ef
对象将被销毁。