【问题标题】:Unable to get DatagridView to select proper row无法让 DatagridView 选择正确的行
【发布时间】:2013-03-12 06:49:04
【问题描述】:

我无法理解这里发生了什么:

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 中的当前行时是否遗漏了什么?任何帮助,将不胜感激。干杯!

【问题讨论】:

    标签: c# select datagridview row


    【解决方案1】:

    我想知道选择该行是否会导致您丢失 CurrentCell。

    数据网格视图中的行是否突出显示?

    您是否允许在网格上进行多行选择。如果不是,我认为您会通过以下方式获得更好的结果:

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

    还有:

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

    【讨论】:

    • 您好 GeorgeK:该行在网格中突出显示,并且仅选择单行。我会试试你的建议。谢谢。
    • 嗨,GeorgeK:工作得很好。感谢您的帮助!
    • 欢迎您,太好了!必须是更改所选行的调用会更新当前单元格。很高兴我能帮上忙。
    猜你喜欢
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多