2010-07-10 57 views
1

大家好我是赢在做一个应用程序形成C#Windows应用程序

我有即我有我的主要形式

树视图,面板和数据网格,一个小问题。我有一些用户控制表单。

当我选择从树视图相应的用户控件中的节点将被获取加载在面板如果主要形式。这很好。

现在为孩子节点我有一些文本文件附加当我点击,我会显示数据网格与数据存在的文本文件。这也很好。

但现在当点击数据网格单元我想显示在用户控制表单中的数据。

任何一个可以告诉如何处理从已显示

回答

3

最好的方法是使用事件处理程序的发布者 - 订阅模式特定的用户控件的控件。 在发布商使用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#