RowIndex возвращает ошибку в ContextMenuStrip - PullRequest
0 голосов
/ 10 марта 2020

Я искал способ. Чтобы редактировать, обновлять и удалять мои данные, используя contextmenustrip.

По сути, я хочу, чтобы моя contextmenustrip могла взаимодействовать с Datagridview, проблема заключается в том, что всякий раз, когда я устанавливаю код для события click. это показывает ошибку, я все еще новичок в c#, поэтому я, вероятно, не понимаю что-то. это мой код.

private void DgAddnew_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    MessageBox.Show("You can now Edit this data, Choose Update Button To populate, Thank you!", "Edit Data,", MessageBoxButtons.OK, MessageBoxIcon.Information);
    int index = e.RowIndex;// get the Row Index

    DataGridViewRow selectedRow = dgAddnew.Rows[index];

    txtNAME.Text = selectedRow.Cells[1].Value.ToString();
    txtADDRESS.Text = selectedRow.Cells[2].Value.ToString();
    txtCELLPHONE.Text = selectedRow.Cells[3].Value.ToString();
    txtCODE.Text = selectedRow.Cells[4].Value.ToString();
    cmbTYPE.Text = selectedRow.Cells[5].Value.ToString();
    cmbCOLOR.Text = selectedRow.Cells[6].Value.ToString();
    cmbHEELS.Text = selectedRow.Cells[7].Value.ToString();
    cmbPAYMENT.Text = selectedRow.Cells[8].Value.ToString();
    cmbPRICE.Text = selectedRow.Cells[9].Value.ToString();
    cmbRESERVE.Text = selectedRow.Cells[10].Value.ToString();
    cmbBONDFEE.Text = selectedRow.Cells[11].Value.ToString();
    dpDATEOUT.Text = selectedRow.Cells[12].Value.ToString();
    dpDATERETURN.Text = selectedRow.Cells[13].Value.ToString();
}

эта работа в datagridview. но когда я добавляю его в contextmenu, весь этот элемент не заполняется, и я получаю ошибку индекса строки.

private void EDITToolStripMenuItem_Click_1(object sender, EventArgs e)
{
    MessageBox.Show("You can now Edit this data, Choose Update Button To populate, Thank you!", "Edit Data,", MessageBoxButtons.OK, MessageBoxIcon.Information);
    int index = e.RowIndex;// get the Row Index

    DataGridViewRow selectedRow = dgAddnew.Rows[index];

    txtNAME.Text = selectedRow.Cells[1].Value.ToString();
    txtADDRESS.Text = selectedRow.Cells[2].Value.ToString();
    txtCELLPHONE.Text = selectedRow.Cells[3].Value.ToString();
    txtCODE.Text = selectedRow.Cells[4].Value.ToString();
    cmbTYPE.Text = selectedRow.Cells[5].Value.ToString();
    cmbCOLOR.Text = selectedRow.Cells[6].Value.ToString();
    cmbHEELS.Text = selectedRow.Cells[7].Value.ToString();
    cmbPAYMENT.Text = selectedRow.Cells[8].Value.ToString();
    cmbPRICE.Text = selectedRow.Cells[9].Value.ToString();
    cmbRESERVE.Text = selectedRow.Cells[10].Value.ToString();
    cmbBONDFEE.Text = selectedRow.Cells[11].Value.ToString();
    dpDATEOUT.Text = selectedRow.Cells[12].Value.ToString();
    dpDATERETURN.Text = selectedRow.Cells[13].Value.ToString();
}

часть, в которой он имеет "e.RowIndex", выдает ошибку. Есть ли способ, которым я могу объявить глобальное объявление или сохранить rowIndex в контейнере и иметь возможность взаимодействовать с contextmenustrip, ??

Я искал его в течение нескольких дней, и он все еще не работает. Это мой 12 дней изучения c# как моего первого языка, и это расстраивает меня, что я все еще плохо сосу. Пожалуйста, помогите мне. Спасибо.

...