Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Newbie + .NET + C#] Accés à un contrôle via l'événement d'un autre contrôle (enfant)

1 réponse
Avatar
Cédric O.
(résumé pour les impatients : En gros, la question peut se résumer à
"Comment accéder à un contrôle et à ses propriétés et méthodes publiques à
partir du gestionaire d'événement d'un de ses enfants ?")


Bonjour,
je suis en plein phase d'apprentissage, j'espère que vous serez indulgents
;o) Je me rend bien compte que mettre des valeurs immédiates pour certaines
tailles ou positions n'est pas la meilleure des idées à cause des
différentes configurations possibles chez les utilisateurs, mais je vais
règler tout ça plus tard... Je viens de lire la FAQ et les conseils
d'utilisation, je suis heureux de ne pas être hors-sujet...

Je vais essayer de résumer le problème en mettant ici le moins de code
possible, après une petite explication pour vous faciliter la lecture de mon
code. (bien que je ne mettrais qu'une quinzaine de lignes de code)

Ma FormPrincipale contient quelques contrôles dont une ListView. Il y a,
dessus, un menu (ou un bouton) "ouvrir..." qui ouvre une bôîte de dialogue
d'ouverture de fichier puis retourne (normalement) DialogResult.OK.Je suis
donc dans la gestion de l'événement d'un des enfants de ma form, et plus
dans le constructeur de ma FormPrincipale. Là j'ouvre le fichier en
question, et je veux écrire chacune des lignes dans la première colonne de
ma ListView qui se trouve sur ma FormPrincipale. Comment accéder à cette
ListView par ce gestionnaire d'événement ?

Merci d'avance pour votre aide...

//******************************************
using System;
using System.IO;
using System.Drawing;
using System.Windows.Forms;

class FormPrincipale: Form
{
/*[--- définition des variables locales à la form ---]*/

public static void Main()
{ Application.Run(new FormPrincipale()); }

// Constructeur de la Form Principale
public FormPrincipale()
{
/*[--- règlage de l'apparence de la form, barre détat, menus,
etc... ---]*/
ListView liste = new ListView();
/*[--- définition de l'apparence et des colonnes de liste ---]*/
}

void MenuOuvrirOnClick(object obj, EventArgs ea)
{
OpenFileDialog dlg = new OpenFileDialog();
if(dlg.ShowDialog() == DialogResult.OK)
{
while(/*[--- !fin_fichier---]*/)
{
/*[--- lecture ligne par ligne ---]*/
ListViewItem lvi = new ListViewItem(ligne);
lvi.SubItems.Add("");
liste.Items.Add(lvi);
}
/*[--- fermeture du fichier et divers ---]*/
}
}

/*[--- suite ---]*/
}
//******************************************

1 réponse

Avatar
Cédric O.
> "Comment accéder à un contrôle et à ses propriétés et méthodes publiques à
partir du gestionaire d'événement d'un de ses enfants ?")



Suffit de mettre la déclaration du ListView hors du constructeur de la form,
sorry pour le dérangement :os