C# 如何以编程方式将选定单元格数据移动到DataGrid中的数组
下面是将所有数据从datagrid移动到阵列的代码。但我只想将选定的数据移动到此阵列。可通过鼠标进行选择C# 如何以编程方式将选定单元格数据移动到DataGrid中的数组,c#,datagrid,C#,Datagrid,下面是将所有数据从datagrid移动到阵列的代码。但我只想将选定的数据移动到此阵列。可通过鼠标进行选择 public List<double[]> ExtractGridData(DataGridView grid) { int numCols = grid.Columns.Count; List<double[]> list = new List<double[]>(); foreach (DataG
public List<double[]> ExtractGridData(DataGridView grid)
{
int numCols = grid.Columns.Count;
List<double[]> list = new List<double[]>();
foreach (DataGridViewRow row in grid.Rows)
{
if (row.IsNewRow) // skip the new row
continue;
double[] cellsData = new double[numCols];
foreach (DataGridViewCell cell in row.Cells)
if (cell.Value != null)
cellsData[cell.ColumnIndex] = Convert.ToDouble(cell.Value);
list.Add(cellsData);
}
return list;
}
public List ExtractGridData(DataGridView网格)
{
int numcolls=grid.Columns.Count;
列表=新列表();
foreach(grid.Rows中的DataGridViewRow行)
{
if(row.IsNewRow)//跳过新行
继续;
double[]cellsData=新的double[numCols];
foreach(row.Cells中的DataGridViewCell单元格)
if(cell.Value!=null)
cellsData[cell.ColumnIndex]=Convert.ToDouble(cell.Value);
列表。添加(cellsData);
}
退货清单;
}
使用而不是网格.行
如果设置为CellSelect
,并且需要单个单元格值,也可以使用:
List<double> cellsData = new List<double>();
foreach (DataGridViewCell cell in grid.SelectedCells)
{
if( cell.Value != null)
cellsData.Add(Convert.ToDouble(cell.Value));
}
List cellsData=new List();
foreach(网格中的DataGridViewCell单元格。SelectedCells)
{
if(cell.Value!=null)
cellsData.Add(Convert.ToDouble(cell.Value));
}
如何将SelectionMode设置为CellSelect?@user2049436“不工作”是什么意思?到底发生了什么事?在设计模式下,选择网格,打开Porperties
窗口(按F4
),将SelectionMode
更改为CellSelect
。或在代码中:grid.SelectionMode=DataGridViewSelectionMode.CellSelect代码>。即使选择了行,我也会遇到异常。在代码中,“cellsData在当前上下文中不存在”是错误。@user2049436请仔细查看答案中的代码cellsData
由我定义,位于foreach
循环前面的一行。例外情况是什么?请阅读一些书籍,学习如何真正用C#和Winforms编程。