Ich will Datagridview-Zeile ausgewählt oder nicht überprüfen, wenn Formular Last ein paar Sachen zu tun, aber es funktioniert nicht für mich arbeiten, wenn Sie diesen Code verwenden:Kann nicht Datagridview-Zeile ausgewählt überprüfen oder nicht, wenn das Formular Last 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());
}
}
}
Wenn debugging, grdInvoiceDetails2.Rows.Count = 6, grdInvoiceDetails2.SelectedRows.Count = 1 Aber wenn ich auf keine Zeile geklickt habe, wird eine Ausnahme ausgelöst .Because grdInvoiceDetails2.CurrentCell = null.
Sie müssen, wenn überprüfen (grdInvoiceDetails2.SelectedRows.Count> 0), dann können Sie grdInvoiceDetails2.CurrentCell nennen, sonst Sie null sehen, Ergebnis Ausnahme. Während Form_Load gibt es keine SelectedRows. Es passiert nur, wenn Sie auf die Zeile klicken oder SelectedRow festlegen. Aber das passiert lange nach Form_Load –