IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Combinaison winform et radiobutton


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Combinaison winform et radiobutton
    Bonjour,

    Nouveau sur le forum et débutant en c#, j'ai un fichier texte dans lequel est lister le nom de tous les winforms utilisé dans mon application et un main form dans lequel l'utilisateur doit faire un choix. J'aimerais savoir s'il serait possible de faire une boucle sur ces optionbutton de manière à ouvrir le winform associé. J'ai tenté en utilisé la propriété des radiobutton tabindex. Mais je suis bloqué avec la classe string de mon tableau et la classe form...

    J'ai essayé avec un fichier texte de la forme suivante:

    1 aaazd
    2 ffgdfg
    etc...

    Merci de votre aide

    Arkyo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    foreach (RadioButton rb in Panel_AjoutTicket.Controls.OfType<RadioButton>())
                {
                    if (rb != null & ComboBox_Affaire.Text != "Affaire" & ComboBox_Secteur.Text != "Secteur" & ComboBox_Criticité.Text != "Criticité")
                    {
                        if (rb.Checked)
                        {
                            int j = 0;
                            int i = 0;
                            String input = File.ReadAllText(@".\Test.txt");
                            string [,] Form = new string [27,2];
                            foreach (var row in input.Split('\n'))
                            {
     
                                foreach (var col in row.Trim().Split(' '))
                                {
                                    Form[i, j] = col.Trim();
                                    j++;
                                }
                                //i++;
     
                            }
     
                            if (rb.TabIndex.ToString() == Form[i, 0])
                            {
                                string b = Form[0, j].ToString();
                                Form a = new Form();
                                a.Name = b;
                                a.Show();
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Veuillez vérifier vos selections !", "Avertissement", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
                        return;
                    }

  2. #2
    Membre actif Avatar de Altor
    Homme Profil pro
    Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 235
    Points
    235
    Par défaut
    Je pense que le plus simple serait de mettre plutôt une ListView, en vue détail, selection unique puis d'affecter à tes ListViewItem un tag textuel qui précise quelle fenêtre ouvrir

    Nom : Form1.png
Affichages : 98
Taille : 7,1 Ko


    Une fois que tu as créé ta liste, il faut charger la liste de tes fenêtres (j'imagine à raison d'une par ligne dans ton fichier texte) :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            private void Form1_Load(object sender, EventArgs e)
            {
                // On lis le fichier
                StreamReader SR = new StreamReader(".\\FormList.txt");
                string Fenetre = "";
                // Pour chaque lignes trouvées dans le fichier, on ajoute une entrée dans la liste
                while((Fenetre = SR.ReadLine()) != null)
                    listView1.Items.Add(new ListViewItem(Fenetre));
            }

    Et lorsque l'utilisateur double clique ou clique sur Ok de ton formulaire, tu vérifie le texte de l'objet selectionné, puis tu ouvres la fenêtre correspondante :


    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
            private void button1_Click(object sender, EventArgs e)
            {
                // On vérifie qu'au moins un objet de la liste est selectionné. Si c'est pas le cas, on préviens l'utilisateur et on arrête la fonction.
                if (listView1.SelectedItems.Count == 0) { MessageBox.Show("Merci de selectionner un objet de la liste."); return; }
     
                // On récupère la valeur de l'objet (son texte)
                string Fenetre = listView1.SelectedItems[0].Text;
     
                // On vérifie et lance la fenêtre correspondante
                Hide();
                switch(Fenetre)
                {
                    case "Fenetre 1": (new Form1).ShowDialog(); break;
                    case "Fenetre 2": (new Form2).ShowDialog(); break;
                    case "Fenetre 3": (new Form3).ShowDialog(); break;
                    case "Fenetre 4": (new Form4).ShowDialog(); break;
                }
                Show();
            }
     
            private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
            {
                // à l'évènement d'un double clique on appel l'évènement du bouton 1
                button1_Click(null, null);
            }

    Ce sera déjà plus simple à gérer pour toi que des RadioButtons, je pense.

Discussions similaires

  1. [Algo] Trouver un arrangement ou une combinaison d'éléments
    Par Morvan Mikael dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 20/04/2013, 11h46
  2. [combinatoire] combinaisons de toutes longueur
    Par Toorop dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 16/02/2007, 16h08
  3. RadioButton
    Par Angeva dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/02/2004, 11h21
  4. Somme de combinaisons
    Par phig dans le forum Mathématiques
    Réponses: 3
    Dernier message: 24/10/2003, 15h03
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo