1

私は C#.Net2010 で Windows アプリケーションを持っています。いくつかの Comobobox と CheckBox 列を含む griview を追加しました。

データ関連の問題のために、GridView でいくつかの行を読み取り専用に設定しました。

イベントユーザーがコンボボックス列からいくつかの値を選択してEnterキーを押すと、次の行が読み取り専用の場合、rowSelectorを読み取り専用ではない行に設定したい

私は次のコードを書いています:

 for (int i = gridAttendanceEntry.CurrentRow.Index + 1; i < gridAttendanceEntry.Rows.Count; i++)
             {
                 if (!gridAttendanceEntry.Rows[i].ReadOnly)
                 {
                     gridAttendanceEntry.Rows[i].Selected = true;
                     this.gridAttendanceEntry.FirstDisplayedScrollingRowIndex = i;
                     break;
                 }
                 if (i == gridAttendanceEntry.Rows.Count - 1)
                     i = 0;
             }

行セレクターをプログラムで変更するにはどうすればよいですか?

4

2 に答える 2

1
if (!gridAttendanceEntry.Rows[i].ReadOnly) 
{ 
     gridAttendanceEntry.Rows[i].Selected = true; 
     this.gridAttendanceEntry.FirstDisplayedScrollingRowIndex = i; 
     break; 
}
else
{
     gridAttendanceEntry.Rows[i].Selected = false;
}

このelseステートメントが必要です。コントロールのデフォルトの動作は、コンボボックスに変更を加えた後、次の行を選択することだと思います。あなたの場合、その行が読み取り専用の場合、手動で選択を解除して、これが発生していないことを確認する必要があります。

于 2012-08-08T13:43:40.393 に答える
1
  1. 選択/フォーカスされた行のインデックスを取得します
  2. 一時的に整数変数に保存し、 + 1 を実行します
  3. 新しいインデックスを持つ行が読み取り専用かどうかを確認します。いいえ?それを選択し、それ以外の場合は 1 を追加して手順 3 をもう一度実行します
于 2012-07-31T09:31:52.103 に答える