2010-07-10 5 views
1

Привет всем я делаю заявление в победе формируетC# окно приложения

Я имею небольшой вопрос я то есть имеющий свою основную форму, как

дерево зрение, панель и сетки данных. У меня есть некоторые формы управления пользователями.

Когда я выбираю узел из дерева, соответствующий элемент управления пользователя будет загружен в панель в основной форме. Это работает хорошо.

Теперь для дочерних узлов у меня есть некоторые текстовые файлы, прикрепленные, когда я нажимаю на это, я покажу сетку данных вместе с данными, присутствующими в текстовом файле. Это также отлично работает.

Но теперь, когда вы нажимаете на ячейки сетки данных, я хотел бы показать данные в форме управления пользователем.

Может ли один рассказать, как обрабатывать элементы управления от конкретных пользовательских элементов управления, который отображается

ответ

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#

Смежные вопросы