簡體   English   中英

如何使用 WindowsForms 中的 DataGridView 獲取選定行中的所有單元格數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM