无法让DatagridView选择正确的行

本文关键字:选择 DatagridView | 更新日期: 2023-09-27 18:05:22

我不明白这里发生了什么:

void FindRecord(string pRecordID){
    dgv_cusData.ClearSelection();
    for(int i=0;i < dgv_cusData.Rows.Count;i++){
        if (dgv_cusData.Rows[i].Cells["recordid"].Value.ToString()==pRecordID){                 
            dgv_cusData.CurrentCell = dgv_cusData.Rows[i].Cells[1];
            dgv_cusData.Rows[i].Selected = true;                    
        }           
    }
}

pRecordID是DGV中唯一的列。我在网格中只有三条记录,我知道选中的记录位于位置2;然后SelectionChanged事件触发:

void Dgv_cusDataSelectionChanged(object sender, EventArgs e)
{           
    MessageBox.Show(dgv_cusData.CurrentCell.RowIndex.ToString()); // <---- Returns 0;
    lbl_DetailsLabel.Text = "Details For "+dgv_cusData.CurrentRow.Cells[1].Value;           
}

CurrentCell。RowIndex总是返回0。在尝试选择DGV中的当前行时,我错过了什么吗?任何帮助都会很感激。干杯!

无法让DatagridView选择正确的行

我想知道如果选择行是导致你失去CurrentCell。

行是否在datagridview中突出显示?

是否允许在网格上进行多行选择。如果不是,我认为你会得到更好的结果与以下:

MessageBox.Show(dgv_cusData.SelectedRows[0].Index.ToString());

:

lbl_DetailsLabel.Text = "Details For "+ dgv_cusData.Rows(dgv_cusData.SelectedRows(0).Index).Cells[1].Value;