Comment appeler un formulaire lorsqu'il y a 3 formulaires dans un projet et un transfert de données entre les formulaires en C #?

StackOverflow https://stackoverflow.com/questions/1012631

  •  06-07-2019
  •  | 
  •  

Question

J'ai 3 formulaires dans mon projet form1, form2, form3 et tout se passait bien, maintenant j'en ai ajouté un de plus dans mon projet form4. Les trois premiers formulaires sont déjà liés via ShowDialog ().

Je ne veux pas toucher au fichier Program.cs.

Comment puis-je appeler le formulaire 4 d'abord en tant que formulaire de démarrage? Le formulaire 1 précédent était le premier à apparaître dans mon projet.

De plus, j'ai 2 boutons radio dans mon formulaire1, rdb1 et rdb2. Dans mon formulaire2, j'ai openFileDialog attaché à un bouton Select. Maintenant, je veux que lorsque l'utilisateur sélectionne rdb1 dans form1, le filtre de openFileDialog dans form2 devrait ouvrir les fichiers avec uniquement ".XML". en tant qu'extension et lorsque rdb2 est sélectionné dans Form1, il ne contient que ".TXT" dans Form2. les fichiers peuvent être ouverts.

Je suis incapable de trouver la syntaxe pour cela dans intellisense, pouvez-vous s'il vous plaît nous aider?

Merci d'avance ..

Était-ce utile?

La solution

Pouvez-vous expliquer pourquoi vous ne souhaitez pas toucher à votre fichier Program.cs? C’est exactement là où vous modifiez le formulaire de démarrage.

Changer le:

Application.Run(new Form1());

à:

Application.Run(new Form4());

Deuxièmement, vous pouvez définir les filtres sur Open- et SaveFileDialog en utilisant la propriété Filter. Définissez une valeur comme celle-ci:

XML Files|*.xml

Ou pour le texte:

Text Files|*.txt

Modifié pour ajouter:

Pour le faire depuis un autre formulaire:

class Form1 {
  Form2 form2;

  void Form1_Load(object sender, EventArgs e) {
    form2 = new Form2();
  }

  void rdb1_CheckedChanged(object sender, EventArgs e) {
    if (rdb1.Checked) 
      form2.openFileDialog1.Filter = "XML Files|*.xml";
    else
      form2.openFileDialog1.Filter = "Text Files|*.txt";
  }
}

Vérifiez que vous avez défini la propriété Modifiers de openFileDialog1 sur le concepteur Form2 sur " Public " ou " Interne " permettre l'accès depuis l'extérieur de la classe elle-même.

Autres conseils

Vous devez toucher program.cs. C’est là que le formulaire initial est créé et exécuté.

Créez un nouveau projet winforms et ouvrez program.cs. Vous pouvez voir où Application.Run est appelé avec une instance du formulaire de démarrage. C'est ce que vous devez faire.

N'ayez pas peur. Tout ira bien.

En réponse au commentaire:

L'événement Form1 Load est déclenché dans Form1 par Form1. Vous devez remonter dans la chaîne d'appels et rechercher l'emplacement où Form1 est instancié et transmis à Application.Run. Et c'est dans program.cs.

Faites-le. Ensuite, allez chercher une copie de CLR via C #. Vous ne le regretterez pas (tant que vous sautez les deux premiers chapitres!)

  

Comment puis-je appeler le formulaire 4 d’abord en tant que formulaire de démarrage?

     

Je ne veux pas toucher au fichier Program.cs.

Pourquoi ne voulez-vous pas toucher à Program.cs? L’instance de formulaire transmise à Application.Run (..) détermine le formulaire de démarrage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top