VS2012デザイナーに問題があります。私は設計したユーザコントロールを持っており、その中には、ユーザがIPv4、IPv6、またはDNSを入力するためのテキストボックス(とりわけ)があります。そのテキストを有効なもの(TextChangedイベント)として主プログラムに報告する必要がありました。次のコードを考えてみましょう:C#カスタムユーザーコントロールでカスタムイベントを認識できません
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は』 『ErrorChanged』 をという名前のイベントがありません。」です
エラーを無視でき、デザイナーはokを表示します。私はプログラムを実行することができ、すべては問題ありませんが、問題を無視するように指示し続ける必要があるのはちょっと迷惑です。これを解決するために何かできることはありますか?ヘルプは高く評価されています!
は、あなたが実際のModbusを介して通信しようとしていますか? (私はちょうど不思議です) –
はい、私は思います。 Modbus RTU over TCP/IP –