[英]How to get all cells data in a selected row using DataGridView in WindowsForms?
我有一个 DataGridView 显示我的数据库中的一些数据,当我双击 datagridview 中的任何行时,我会在新的 window 中获取其内容。
我有这个:
private void ListaProductos_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
var content = ListaProductos.Rows[e.RowIndex].Cells["Name"].Value.ToString();
var abrirNuevoProducto = new modificar_producto(content ); // I want to pass data to another form
abrirNuevoProducto.Show(); // loads the new form with data for modification
}
这对我有用,但是......像这样一个一个地做这个会很累很乏味:
var content = ListaProductos.Rows[e.RowIndex].Cells["Name"].Value.ToString();
var content2 = ListaProductos.Rows[e.RowIndex].Cells["Age"].Value.ToString();
var conten3 = ListaProductos.Rows[e.RowIndex].Cells["Surname"].Value.ToString();
var content4 = ListaProductos.Rows[e.RowIndex].Cells["Address"].Value.ToString();
... and 150 more columns
var abrirNuevoProducto = new modificar_producto(content, content2, content3, content4 ... and so on); // I want to pass data to another form
abrirNuevoProducto.Show(); // loads the new form with data for modification
我会使用列表来做到这一点,但是......,我想知道是否有一种简单的方法可以做到这一点,因为我正在尝试的方式非常累和穷。 或者我应该使用列表来代替吗?
我需要将数据传递到另一个表单以进行修改操作。
如果您已经为此表定义了 class,则可以使用如下代码
var products = new List<Products>(grid.SelectedRows.Count);
for(int index = 0; index < grid.SelectedRows.Count; index++)
{
var selectedRow = grid.SelectedRows[index];
var product = (Products)selectedRow.DataBoundItem;
products.Add(prduct);
}
或者如果您没有 class 定义,您可以使用动态关键字
var products = new List<dynamic>(grid.SelectedRows.Count);
for(int index = 0; index < grid.SelectedRows.Count; index++)
{
var selectedRow = grid.SelectedRows[index];
var product = (dynamic)selectedRow.DataBoundItem;
products.Add(prduct);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.