我在使用VS2012设计器时遇到问题。我设计了一个用户控件,其中有一个文本框(以及其他内容),用户可以在其中输入IPv4、IPv6或DNS。我需要将该文本验证为有效(TextChanged事件)报告返回到主程序。考虑以下代码:
private bool addressError;
public EventHandler ErrorChanged;
public bool Error
{
get
{
return addressError;
}
set
{
if (this.Error != value)
{
addressError = value;
OnErrorChanged(this, EventArgs.Empty);
}
}
}
protected virtual void OnErrorChanged(object sender, EventArgs e)
{
if (ErrorChanged != null)
{
ErrorChanged(sender, e);
}
}
然后我将事件处理程序添加到主程序设计器中(控件名称为“Com”):
this.Com.ErrorChanged += new System.EventHandler(this.Com_ErrorChanged);
我遇到的问题是,尽管代码完全按照我的意愿工作,但设计者认为没有
ErrorChanged
事件它报告的确切信息是
“类型“ModbusCom.Communications”没有名为的事件
“错误已更改”。"
我可以忽略错误,设计器会显示表单。我可以运行程序,一切都很好,但不得不一直告诉它忽略问题有点烦人。我能做些什么来解决这个问题吗?非常感谢您的帮助!