最好的方法是使用事件处理程序的发布者 - 订阅模式特定的用户控件的控件。 在发布商使用public event EventHandler FlightStarted;
并具有EventArgs类:
public class StartEventArgs: EventArgs
{
public String flightCode { get; private set; }
public StartEventArgs(String flightCode)
{
this.flightCode = flightCode;
}
在您的出版商类您使用OnSomething的方法来激发关闭事件。
public void OnFlightStarted(StartEventArgs e)
{
if (FlightStarted != null)
FlightStarted(this, e);
}
现在,你需要有一个用户,以及:
flight.FlightStarted += new EventHandler(flight_FlightStarted);
和方法
void flight_FlightLanded(object sender, EventArgs e)
{
if (e is LandEventArgs)
{
LandEventArgs landEventArgs = e as LandEventArgs;
String flight = landEventArgs.flightCode;
while (flight.Length <= 15)
flight += " ";
String time = DateTime.Now.ToLongTimeString();
lbxStatus.Items.Insert(0, flight + "landed"
+ " " + time);
}
}
更多读到这里:Event Tutorial C#