最好的方法是使用事件處理程序的發佈者 - 訂閱模式特定的用戶控件的控件。 在發佈商使用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#