如何反转 DataGridView 中的行

Sha*_*w89 4 c# datagridview winforms

我正在使用数据网格,但这些值没有按照我希望的方式显示。我当前的代码如下,我将如何反转行?

string[] strOutput = strLine.Split('_', ',','=');

int totalRows = Convert.ToInt16(strOutput[4]);
int totalCols = Convert.ToInt16(strOutput[5]);
int itemIndex = 8;

for (int i = 0; i < totalCols; i++){ 
    dataGridView1.Columns.Add("Col", "Col");
}
dataGridView1.Rows.Add(totalRows);
for (int i = 0; i < totalRows; i++) { 
    for (int j = 0; j < totalCols; j++) { 
        dataGridView1.Rows[i].Cells[j].Value = strOutput[itemIndex];
         itemIndex += 2;
    }                  
}
dataGridView1.Visible = true;
Run Code Online (Sandbox Code Playgroud)

反转行

TaW*_*TaW 6

要反转即反转,DataGridViewRows您可以使用以下命令:

void ReverseDGVRows(DataGridView dgv)
{
    List<DataGridViewRow> rows = new List<DataGridViewRow>();
    rows.AddRange(dgv.Rows.Cast<DataGridViewRow>());
    rows.Reverse();
    dgv.Rows.Clear();
    dgv.Rows.AddRange(rows.ToArray());
}
Run Code Online (Sandbox Code Playgroud)

如果您只需要执行一次,您可以:

  • 反向循环源文件的行
  • 或者代替顶部的Adding行(到最后) :Insert

dtnew.Rows.Insert(0, currentDataRowView.Row);
Run Code Online (Sandbox Code Playgroud)