2016-06-21 19 views
2

私はDataGridViewを持っていますが、セルの値を無効にすると、そのセルが(現在のセルであっても)強調表示され、ユーザーは値セルの任意のキーを押すと置き換えられます。無喜びでこれらの両方を試してみました場合:C#現在のDataGridVeiwセルをフォーカスして表示する方法

dgv.CurrentCell = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex]; 

...と...

dgv.ClearSelection(); 
dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true; 

任意の考えをいただければ幸いです。ありがとう。

UPDATE

は、私はこのように見てから行くために無効なデータを持つセルを好き:

enter image description here

...このような何かを探しに(私はペイントでスペースを埋め) :

enter image description here

私は存在していこれをCellValidatingイベントハンドラDataGridViewで実行します。これは、CellValidatedイベントハンドラでうまくいくのでしょうか?あなたはそれのCurrentCellプロパティに割り当てることができますDataGridViewの現在のセルとセルを設定するには

+0

あなたは 'Selected'プロパティで試してみましたが? –

+0

はい、 'Selected'プロパティを設定することは私の2番目のアプローチとして投稿に表示されます。 –

+0

Oooppss、私はそれを逃した。あなたは "ハイライトセル"の意味を定義できますか?つまり、そのセルを編集できるようにフォーカスを設定したいのですか?もしそうなら、 'BeginEdit(true)'メソッドを試してください。 –

答えて

0

:編集モードに行くために、現在のセルを強制的に

dataGridView1.CurrentCell = dataGridView1.Rows[1].Cells[2]; 

、あなたはBeginEditメソッドを使用することができます

dataGridView1.ClearSelection(); 
:すべての選択したセルの選択を解除するには
dataGridView1.BeginEdit(true); 

、あなたはClearSelectionメソッドを使用することができます

は、それが編集モードでいたときに、アクティブセルの背景色を変更CellFormattingイベント処理するには:

void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] == dataGridView1.CurrentCell) 
     e.CellStyle.BackColor = Color.Red; 
} 
+0

選択したセルを別のセルに変更してから、希望のセルに戻すと、セル全体がハイライト表示されますか? –

+0

'CurrentCell'は、ユーザが現在編集していて、現在' CellValidating'イベントハンドラで検証されているセルです。 –

+0

私はこのソリューションをテストする方法です:私はグリッドとボタンを持っており、これらのコードを 'Button'の' Click'イベントハンドラに書き、正しく動作します。 –

関連する問題