Сначала, как сказал Гаптон, вам нужно передать событие CellDoubleClick
, и внутри этого события вы можете получить значения ячеек текущей строки, используя следующий синтаксис:
object cell1 = dataGrid.Rows[e.RowIndex].Cells[0].Value;
object cell2 = dataGrid.Rows[e.RowIndex].Cells[2].Value;
, где e.RowIndex
- индекс пользователя строкидвойной щелчок и e.ColumnIndex
содержит индекс столбца ячейки, для которой этот двойной щелчок произошел ...
сейчас, чтобы передать значения в новую форму, вы можете сделать это двумя различными способами: 1: используяобщедоступные свойства, скажем, у вас есть Form2, которому вы хотите передать значения, в классе Form2 определите свойства для интересующих вас значений, таких как:
public object cell1 { get; set; }
public object cell2 { get; set; }
и в вашем CellDoubleClick
выше, создайте новый объектформы 2, присвойте значения свойствам и вызовите метод show для отображения этой формы:
private void dataGrid_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
object cell1 = dataGrid.Rows[e.RowIndex].Cells[0].Value;
object cell2 = dataGrid.Rows[e.RowIndex].Cells[2].Value;
Form2 form2 = new Form2();
form2.cell1 = cell1;
...
form2.Show();
}
2: используя перегруженный конструктор, запишите перегруженный конструктор для формы Form2, например:
public Form2(object cell1, ...) {
this.cell1 = cell1;
....
InitializeComponent();
}
а затем в обработчике событий:
private void dataGrid_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
object cell1 = dataGrid.Rows[e.RowIndex].Cells[0].Value;
object cell2 = dataGrid.Rows[e.RowIndex].Cells[2].Value;
Form2 form2 = new Form2(cell1...);
form2.Show();
}