0

列がDatagridviewComboboxあり、各行に DatagridviewCombobox セルを作成し、それに項目を追加しています。(コンボボックス)セルの値を変更すると、それを示す例外がスローされDatagridviewcombobox cell value is not valid. 、セル値が「1」になります。

私はdatagridview_currentcelldirtystatechangeイベントに取り組んでいますが、それを機能させることができませんでした。

以下のコードは、行を作成し、コンボボックスのセルにシーケンス番号を入力しています。

    int _rowLimit =1;

    for (int i = _rowLimit - 1; i < _rowLimit; i++)
    {          
         datagridview.Rows.Add();
         item = i + 1;
         datagridview[myColumn, i].Value = _rowLimit;                   

         DataGridViewComboBoxCell oCell = datagridview.CurrentRow.Cells[myColumn] as DataGridViewComboBoxCell;
         oCell.Items.Add(item);

         ((DataGridViewComboBoxColumn)datagridview.Columns[myColumn]).Items.IndexOf(_rowLimit);
         ((DataGridViewComboBoxColumn)datagridview.Columns[myColumn]).Items.Insert(index, item);
    }

datagridview_currentcelldirtystatechangeそして、以下は私がイベントでやっていることです:

for (int innerIndex = 0; innerIndex < datagridview.Rows.Count; innerIndex++)
    {
      long sequence = 3;
      long oldSequence = 2;
      long tempValue= Convert.ToInt64(datagridview.Rows[innerIndex].Cells[myColumn].Value);
      if (tempValue <= sequence && tempValue> oldSequence)
      {                    
           datagridview.Rows[innerIndex].Cells[myColumn].Value = tempValue+ 1; // increment   the sequence 
// value here i am getting is correct , but it doesn't show in the DatagridviewCombobox cell where it gets changed of gridview and the mentioned exception is thrown.

      }

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1