Obtenir datagrid valeurs par ligne d'index pour une utilisation ultérieure

0

La question

Je suis en train d'obtenir les valeurs des cellules d'une ligne de grille de données je clique sur et de les stocker pour une utilisation ultérieure, mais il semble que je ne peux pas le faire fonctionner.

En cliquant sur la ligne, vous devez faire apparaître un menu déroulant sur lequel je peux choisir de faire une action avec ces valeurs.

C'est ce que j'ai accompli jusqu'à présent

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs x)
        {
            if (dataGridView1.Rows[x.RowIndex].Cells["Name"].Value != null) name = dataGridView1.Rows[x.RowIndex].Cells["Name"].Value.ToString();
            else if (dataGridView1.Rows[x.RowIndex].Cells["LastName"].Value != null) last = dataGridView1.Rows[x.RowIndex].Cells["LastName"].Value.ToString();
        }

        private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if (last != null && name != null)
                {
                    ContextMenu cm = new ContextMenu();
                    this.ContextMenu = cm;
                    cm.MenuItems.Add(new MenuItem("&Do something with those values in this row", new System.EventHandler(this.do_Action_with_values)));
                    cm.Show(this, new Point(e.X, e.Y));
                }
                last = null;
                name = null;
            }
        }

Retrait: si (enfin != null && nom != null)

Va faire le menu de travail, mais les valeurs ne sont pas enregistrées, elles sont toutes nulles.

Est-il correctement de façon à stocker dans les chaînes de toutes les valeurs des colonnes de la ligne cliqué sur?

c# datagrid
2021-11-23 17:36:12
1

La meilleure réponse

0

Conformément à la demande dans les commentaires, l'utilisation CellMouseClick de l'événement et DataGridViewCellMouseEventArgs combiner vos gestionnaires dans un gestionnaire d'événement qui a toutes les propriétés dont vous avez besoin.

Acheteur méfiez-vous, le code ci-dessous a été écrit en dehors de l'IDE de sorte qu'il peut être syntaxe/d'autres erreurs.

    private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {
        if (e.Button != MouseButtons.Right) return;
        int row = e.RowIndex;
        string name = dataGridView1.Rows[row].Cells["Name"].Value;
        string last = dataGridView1.Rows[row].Cells["LastName"].Value;
        if (name == null || name.Trim().Length == 0) return;
        if (last == null || last.Trim().Length == 0) return;
        ContextMenu cm = new ContextMenu();
        this.ContextMenu = cm;
        cm.MenuItems.Add(new MenuItem("&Do something with those values in this row", new System.EventHandler(this.do_Action_with_values)));
        cm.Show(this, new Point(e.X, e.Y));
    }
2021-11-23 18:39:27

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................