Mam problem z projektantem VS2012. Mam zaprojektowaną przeze mnie kontrolę użytkownika, w której znajduje się pole tekstowe (między innymi), w którym użytkownik ma wprowadzić IPv4, IPv6 lub DNS. Musiałem potwierdzić ten tekst jako ważny (zdarzenie TextChanged) z powrotem do głównego programu. Rozważmy następujący kod:C# Zaprojektowany nie rozpoznaje niestandardowego zdarzenia w niestandardowej kontroli użytkownika
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);
}
}
Potem dodać obsługi zdarzeń do głównego projektanta programu (nazwa sterowania jest „Com”):
this.Com.ErrorChanged += new System.EventHandler(this.Com_ErrorChanged);
Problem mam to, że mimo że kod działa dokładnie tak jak chciałem, projektant myśli, że nie ma zdarzenia ErrorChanged
. Dokładna wiadomość zgłasza to
„«ModbusCom.Communications»typ ma zdarzenie o nazwie «ErrorChanged».”
Mogę zignorować błąd i projektant wyświetla formularz OK. Mogę uruchomić program i wszystko jest w porządku, ale trochę denerwujące jest powtarzanie tego, aby zignorować problem. Czy jest coś, co mogę zrobić, żeby to rozwiązać? Pomoc jest doceniana!
Czy rzeczywiście próbuje komunikować się przez Modbus? (Właśnie się zastanawiam) –
Tak, jestem. Modbus RTU przez TCP/IP –