Maison > développement back-end > C++ > Comment définir une valeur sélectionnée de combobox sur un deuxième formulaire en sélectionnant une ligne DataGridView sur le premier formulaire?

Comment définir une valeur sélectionnée de combobox sur un deuxième formulaire en sélectionnant une ligne DataGridView sur le premier formulaire?

Patricia Arquette
Libérer: 2025-01-31 07:36:11
original
458 Les gens l'ont consulté

How to Set a ComboBox's SelectedValue on a Second Form by Selecting a DataGridView Row on the First Form?

Forms Windows Forms Windows Communication Méthode

Scène:

Les applications des formulaires Windows nécessitent souvent une interaction de données entre plusieurs fenêtres, telles que le remplissage des contrôles sur une autre fenêtre en fonction du choix d'une fenêtre.

Question:

Comment configurer la valeur sélectionnée de la deuxième fenêtre en sélectionnant la ligne dans la première fenêtre pour définir la ligne dans DataGridView pour remplir le ComboBox pour remplir le ComboBox avec cette valeur? Solution:

Dans les formulaires Windows, les Windows sont similaires aux autres catégories C #, et les méthodes de communication entre les fenêtres sont les mêmes que la méthode de communication inter-classe.

Fonctionne la deuxième fenêtre de la première fenêtre:

Construire le transfert de paramètres de la fonction:

Ajouter les paramètres nécessaires au constructeur de la deuxième fenêtre. Lors de la création d'une deuxième instance de fenêtre, la valeur est transmise au constructeur. Attributs ou méthodes publiques:

Créer des attributs ou des méthodes publics dans la deuxième fenêtre, et définissez ces attributs après avoir créé une deuxième instance de fenêtre. De cette façon, la deuxième fenêtre peut accéder à ces valeurs.
  • Contrôle public: Une autre méthode consiste à définir les contrôles qui doivent être exploités pour les autorisations d'accès au public afin d'accéder depuis d'autres fenêtres. Mais cela n'est généralement pas recommandé car la maintenance et l'évolutivité du code seront réduites.
  • Fonctionne la première fenêtre de la deuxième fenêtre:
  • Passez l'instance de première fenêtre: Créez un attribut public dans la deuxième fenêtre pour stocker l'instance de la première fenêtre. Lors de la création d'une deuxième instance de fenêtre, passez l'instance de la première fenêtre. Ensuite, vous pouvez utiliser cette instance pour faire fonctionner la première fenêtre.
  • Utiliser l'événement:
Créez un événement dans la deuxième fenêtre et abonnez-vous à l'événement dans la première fenêtre. Lorsque la première fenêtre est requise, l'événement est déclenché.

Injectez-le dans la Commission d'action: Définissez un attribut public du type d'action confié dans la deuxième fenêtre. Lors de la création d'une deuxième instance de fenêtre, utilisez une action personnalisée pour attribuer l'attribut. Lorsque vous devez faire fonctionner la première fenêtre, appelez l'action dans la deuxième fenêtre.

    Le premier contrôle de la fenêtre:
  • divulgue directement le contrôle de la première fenêtre et passez l'instance de la première fenêtre à la deuxième fenêtre. Ensuite, vous pouvez faire fonctionner le contrôle. Mais cela n'est pas recommandé, la raison est ci-dessus.
  • Exemple:
  • Fonctionne la deuxième fenêtre de la première fenêtre
  • Exemple 1 -Le constructeur de l'utilisation de la deuxième fenêtre:
  • dans la première fenêtre:
EXEMPLE 2 -PUBLIC Attributs de l'utilisation de la deuxième fenêtre:

dans la première fenêtre:

La première fenêtre fonctionne à partir de la deuxième fenêtre

Exemple 3 - Transfert l'instance de la première fenêtre à la deuxième fenêtre et utilisez une méthode publique:

lors de la création de formulaire 2:
public partial class Form2 : Form
{
    int selectedValue;
    public Form2(int value)
    {
        InitializeComponent();
        selectedValue = value;
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        // 加载数据
        this.comboBox1.DataSource = new MyDbContext().Categories.ToList(); // 假设Categories是数据库表
        this.comboBox1.DisplayMember = "Name";
        this.comboBox1.ValueMember = "Id";
        this.comboBox1.SelectedValue = selectedValue;
    }
}
Copier après la connexion

Ces exemples montrent la mise en œuvre de différentes méthodes, quelle méthode à choisir dépend du scénario d'application spécifique et de la structure du code. Il est recommandé de donner la priorité à l'utilisation d'attributs ou de méthodes publics pour éviter un contrôle public direct afin d'améliorer la maintenance et la lisibilité du code.
int value = 2; // 或从DataGridView获取
Form2 f = new Form2(value);
f.ShowDialog();
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal