私のクライアントは、DataGridViewセルを介してタブするときに、現在の次のセルがデフォルト以外のセルになるようにしたいと考えています。これを達成する最良の方法は何ですか?DataGridViewでタブの順序を変更するにはどうすればよいですか?
2
A
答えて
2
独自のDataGridViewを作成し、ProcessTabKeyメソッドをオーバーライドします。そこにロジックがありますか?SetCurrentCellAddressCoreを使用して、次のアクティブなセルを設定します。
など、そのメソッドのデフォルトの実装では、このような選択モード、編集モード、行の状態など、さまざまな条件を占めていることを注意、境界
編集
また、あなたは/ keyUpイベントを処理することができKeyDownイベント。 Trueに、グリッドの
設定StandardTabプロパティを、次のコードを追加します:、そこでのいくつかの奇妙な行動があると私は多くの時間を費やすことはありませんでしたが、これはやるべき
private void Form1_Load(object sender, EventArgs e)
{
// TODO: Load Data
dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0];
if (dataGridView1.CurrentCell.ReadOnly)
dataGridView1.CurrentCell = GetNextCell(dataGridView1.CurrentCell);
}
private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Tab)
{
dataGridView1.CurrentCell = GetNextCell(dataGridView1.CurrentCell);
e.Handled = true;
}
}
private DataGridViewCell GetNextCell(DataGridViewCell currentCell)
{
int i = 0;
DataGridViewCell nextCell = currentCell;
do
{
int nextCellIndex = (nextCell.ColumnIndex + 1) % dataGridView1.ColumnCount;
int nextRowIndex = nextCellIndex == 0 ? (nextCell.RowIndex + 1) % dataGridView1.RowCount : nextCell.RowIndex;
nextCell = dataGridView1.Rows[nextRowIndex].Cells[nextCellIndex];
i++;
} while (i < dataGridView1.RowCount * dataGridView1.ColumnCount && nextCell.ReadOnly);
return nextCell;
}
0
氏ルスランをコードは私のために働かなかった。彼の考えを引き出すことで、私はコードを少し変えました。
private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Tab)
{
if(dataGridView1.CurrentCell.ReadOnly)
dataGridView1.CurrentCell = GetNextCell(dataGridView1.CurrentCell);
e.Handled = true;
}
}
private DataGridViewCell GetNextCell(DataGridViewCell currentCell)
{
int i = 0;
DataGridViewCell nextCell = currentCell;
do
{
int nextCellIndex = (nextCell.ColumnIndex + 1) % dataGridView1.ColumnCount;
int nextRowIndex = nextCellIndex == 0 ? (nextCell.RowIndex + 1) % dataGridView1.RowCount : nextCell.RowIndex;
nextCell = dataGridView1.Rows[nextRowIndex].Cells[nextCellIndex];
i++;
} while (i < dataGridView1.RowCount * dataGridView1.ColumnCount && nextCell.ReadOnly);
return nextCell;
}
関連する問題
- 1. MDIタブのドキュメントメニューで順序を変更するにはどうすればよいですか?
- 2. 異なるdivのulラッピングのタブ順序を変更するにはどうすればいいですか?
- 3. axaptaのコントロールのタブ順序を変更するにはどうすればいいですか?
- 4. カルマでテストの順序をランダム化または変更するにはどうすればよいですか?
- 5. WPFでGridView列の順序を動的に変更するにはどうすればよいですか?
- 6. Backbone.jsアプリケーションでlocalStorageのデータの順序を変更するにはどうすればよいですか?
- 7. Visual Studioのソリューションエクスプローラでファイルの順序を変更するにはどうすればよいですか?
- 8. Javaで単一のリンクリストキューの順序を変更するにはどうすればよいですか?
- 9. kivyでBoxLayoutの順序を変更するにはどうすればよいですか?
- 10. Apache Tilesでタイル評価の順序を変更するにはどうすればよいですか?
- 11. 呼び出される順序を変更するにはどうすればよいですか?
- 12. プログラムでタブを変更するにはどうすればよいですか?
- 13. Androidでタブを変更するにはどうすればよいですか?
- 14. vscodeのステータスバーのボタンの順序を変更するにはどうすればよいですか?
- 15. コアデータの複合主キーのフィールドの順序を変更するにはどうすればよいですか?
- 16. レスポンシブデザインのブロック要素の順序を変更するにはどうすればよいですか?
- 17. .htaccess URLのGETパラメータの順序を変更するにはどうすればよいですか?
- 18. ggplot2バーグラフのバーの順序を変更するにはどうすればよいですか?
- 19. Hudsonダッシュボードのジョブの順序を変更するにはどうすればよいですか?
- 20. woocommerceフォームのラベルと入力の順序を変更するにはどうすればよいですか?
- 21. Spark Dataframes:Java/Scalaの列の順序を変更するにはどうすればよいですか?
- 22. Springのアノテーションの実行順序を変更するにはどうすればよいですか?
- 23. GrapheneDBノードの行の順序を変更するにはどうすればよいですか?
- 24. テーブルC#の<tr>タグの順序を変更するにはどうすればよいですか?
- 25. Rails 3のイニシャライザのロード順序を変更するにはどうすればよいですか?
- 26. ベクトルの要素の順序を変更するにはどうすればよいですか?
- 27. Eloquentコレクションの結果の順序を変更するにはどうすればよいですか?
- 28. アンケートの質問の順序を変更するにはどうすればよいですか?
- 29. Google Charts:円グラフのスライスの順序を変更するにはどうすればよいですか?
- 30. XPのクイック起動ボタンの順序を変更するにはどうすればよいですか?
独自のグリッドを書きたくない場合は、KeyUp/KeyDownイベントを使用します。私の答えを見てください。私はそれを試して、それは動作するようだ... – Ruslan