我要检查的DataGridView行选择或没有时,窗体加载做一些东西,但使用此代码时,它并没有为我工作:无法检查的DataGridView行选择或没有时,窗体加载C#
private void btnEdit_Click(object sender, EventArgs e)
{
if (grdInvoiceDetails2.Rows.Count > 0 && grdInvoiceDetails2.SelectedRows.Count > 0)
{
try
{
Them = false;
var r = grdInvoiceDetails2.CurrentCell.RowIndex;
txtQty.Text = grdInvoiceDetails2.Rows[r].Cells[3].Value.ToString();
cboInvNo.SelectedValue = grdInvoiceDetails2.Rows[r].Cells[1].Value.ToString();
cboItemName.SelectedValue = grdInvoiceDetails2.Rows[r].Cells[2].Value.ToString();
cboItemName.Enabled = true;
cboInvNo.Enabled = false;
txtQty.Enabled = true;
btnSave.Enabled = true;
btnCancel.Enabled = true;
btnAdd.Enabled = false;
btnEdit.Enabled = false;
btnDelete.Enabled = false;
btnBack.Enabled = false;
LoadDataToCollection();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
当调试,grdInvoiceDetails2.Rows.Count = 6,grdInvoiceDetails2.SelectedRows.Count = 1 但如果我没有点击任何行,它会抛出一个异常。因为grdInvoiceDetails2.CurrentCell = null。
您必须检查(grdInvoiceDetails2.SelectedRows.Count> 0),那么你可以调用grdInvoiceDetails2.CurrentCell,否则,你看空,结果是例外。在Form_Load期间,没有SelectedRows。只有当您点击该行或设置SelectedRow时才会发生这种情况。但是,在Form_Load – 2016-07-05 03:51:39