seleccionar - doble click datagridview c#
c#datagridview doble clic en fila con FullRowSelect (5)
Tengo una vista de datos en mi aplicación C # y el usuario solo debería poder hacer clic en las filas completas. Así que puse el SelectionMode en FullRowSelect.
Pero ahora quiero tener un Evento que se dispara cuando el usuario hace doble clic en una fila. Quiero tener el número de fila en un MessageBox.
Intenté lo siguiente:
this.roomDataGridView.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.roomDataGridView_CellCont ​entDoubleClick);
private void roomDataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(e.RowIndex.ToString());
}
Lamentablemente no pasa nada. ¿Qué estoy haciendo mal?
En CellContentDoubleClick, el evento solo se activa al hacer doble clic en el contenido de la celda. Utilicé esto y funciona:
private void dgvUserList_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(e.RowIndex.ToString());
}
Esto funcionará, asegúrese de que su evento de control esté asignado a este código, probablemente se haya perdido, también noté que el doble clic solo funcionará si la celda no está vacía. Intenta hacer doble clic en una celda con contenido, no te metas con el diseñador
private void dgvReport_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
//do something
}
No edites manualmente los archivos .designer en Visual Studio, que generalmente te causan dolores de cabeza. En su lugar, o bien especifíquelo en la sección de propiedades de su DataGridRow que debería estar contenida dentro de un elemento DataGrid. O si solo quiere que VS lo haga, busque el evento de doble clic dentro de las propiedades página-> eventos (pequeño icono del rayo) y haga doble clic en el área de texto donde ingresaría el nombre de una función para ese evento.
Este enlace debería ayudar
http://msdn.microsoft.com/en-us/library/6w2tb12s(v=vs.90).aspx
Obtendrá el número de índice de la fila en la vista de datos usando las tablas de empleados de la base de datos de Northwind como ejemplo:
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the ''nORTHWNDDataSet.Employees'' table. You can move, or remove it, as needed.
this.employeesTableAdapter.Fill(this.nORTHWNDDataSet.Employees);
}
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
var dataIndexNo = dataGridView1.Rows[e.RowIndex].Index.ToString();
string cellValue = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
MessageBox.Show("The row index = " + dataIndexNo.ToString() + " and the row data in second column is: "
+ cellValue.ToString());
}
}
}
el resultado le mostrará el número de índice de registro y el contenido de la segunda columna de la tabla en datagridview:
puede hacer esto por: Evento CellDoubleClick
este es el código.
private void datagridview1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(e.RowIndex.ToString());
}