2010-07-10 6 views
1

Salut à tous je suis en train de faire une demande dans la victoire formeapplication C# windows

J'ai un petit problème i.e. je vais avoir ma principale forme que

vue Arbre, le panneau et une grille de données. J'ai quelques formulaires de contrôle d'utilisateur.

Lorsque je sélectionne un nœud à partir de l'arborescence, le contrôle utilisateur correspondant sera chargé dans le panneau si le formulaire principal. Cela fonctionne bien.

Maintenant, pour les nœuds enfants, j'ai des fichiers texte attachés lorsque je clique sur le fait que je vais afficher la grille de données avec les données présentes dans le fichier texte. Cela fonctionne aussi bien.

Mais maintenant, lorsque vous cliquez sur les cellules de la grille de données, je voudrais montrer les données dans le formulaire de contrôle de l'utilisateur.

Peut-on dire comment gérer les commandes de contrôles utilisateur particulier qui a été affiché

Répondre

3

La meilleure approche consiste à utiliser des gestionnaires-événement comme un paradigme abonné de l'éditeur. Dans votre éditeur vous utilisez public event EventHandler FlightStarted; et ayant une classe EventArgs:

public class StartEventArgs: EventArgs 
    { 
    public String flightCode { get; private set; } 

    public StartEventArgs(String flightCode) 
    { 
     this.flightCode = flightCode; 
    } 

Dans votre classe d'éditeur vous utilisez un OnSomething-méthode pour déclencher l'événement.

public void OnFlightStarted(StartEventArgs e) 
    { 
     if (FlightStarted != null) 
      FlightStarted(this, e); 
    } 

Maintenant, vous devez avoir un abonné ainsi:

flight.FlightStarted += new EventHandler(flight_FlightStarted); 

et la méthode

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); 
     } 
    } 

Plus de lire ici: Event Tutorial C#

Questions connexes