Obtener datagrid valores de índice de fila para su uso posterior

0

Pregunta

Estoy tratando de obtener los valores de las celdas de una fila de datagrid hago clic en y guardarlos para su uso posterior, pero parece que no puedo conseguir que funcione.

Haciendo click sobre la fila debe hacer un menú en la que puedo elegir para hacer una acción con esos valores.

Esto es lo que he logrado hasta ahora

        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;
            }
        }

Eliminar: si (la última != null && nombre != null)

Va a hacer el trabajo del menú, pero los valores no son salvos, todos ellos son nulos.

Existe una adecuada manera de almacenar en las cadenas de todos los valores de columna de la fila que se hace clic en?

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

Mejor respuesta

0

Por petición en los comentarios, el uso de CellMouseClick evento y DataGridViewCellMouseEventArgs para combinar sus controladores en un controlador de eventos que tiene todas las propiedades que usted necesita.

Cuidado con el comprador, el código a continuación fue escrito fuera de un IDE, así que puede ser sintaxis/otros errores.

    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

En otros idiomas

Esta página está en otros idiomas

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