2017-05-21 9 views
0

Heay guys 私はこのコードを持っています。私はそれセルントディジットの前にdatagridviewセルから値を読み取る

foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    foreach (DataGridViewCell cell in row.Cells) 
    { 
     Console.WriteLine(cell.Value.ToString()); 
    } 
} 

におけるしかし、いくつかの愚かな理由で問題があるとは思わないにもかかわらず、それはdoesn't私が編集を終了しhaven'tセルの値を示しています。私にそれをさせることを可能にする財産はありますか?

私はDatagridviewという形をしています。最初のセルに "aaa"と書いて、最初の行に2番目のセルに "bbb"と書いてフォームを閉じます。 OnClose eventは上からコードを実行し、出力は "aaa"です。問題は、フォームを閉じる前に、たとえば2行目の最初のセルをクリックすると(つまり、最初の行の2番目のセルでEndCellEditイベントが発生するということです)、それが起こらないということです。

ありがとうございます。

+0

これは何を示していますか?あなたは問題についてより明確になることができますか? – FortyTwo

+0

あなたは人に行く。 – pajamac

答えて

2

DataGridViewセルの値を変更する場合、CellValueChangedEventは、セルを離れるとき(たとえば、ケースの別のセルをクリックした場合)にのみ起動されます。値を変更してからフォームを閉じると、イベントは発生しません。フォームの終了イベントを回避するには、DataGridViewからフォーカスを外してCellValueChangedEventを発生させることができます。フォーカスをラベルやフォームの他のコントロールに設定できます。

+0

フォーカスを変更する方法がわからない場合は、[this](https://msdn.microsoft.com/en-us/library/system.windows.forms.control.focus(v = vs.110).aspx)を参照してください。 – FortyTwo

+0

正確に私が探していたことをありがとう。 – pajamac

関連する問題