- PR -

DataGridViewのCellLeaveイベントでセルの操作をしたいです。

1
投稿者投稿内容
ミキ
常連さん
会議室デビュー日: 2006/01/12
投稿数: 28
投稿日時: 2009-01-21 12:48
お世話なっております。
DataGridViewのCellLeaveイベント内ででフォーカスの位置を操作しようとしても、全く動かないです。

例えば
Private Sub DataGridView_CellLeave(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView.CellLeave

DataGridView.Rows(1).Cells(3).Selected() = True

End Sub

と記述してもセルの行1列3にフォーカスが飛んでくれません。
何か記述が足りないのでしょうか…
どなたかご教授お願いします。
レイル
常連さん
会議室デビュー日: 2008/10/14
投稿数: 37
投稿日時: 2009-01-21 16:52
CellLeaveイベントはセルからフォーカスが離れた時に発生すると認識してます。
なので、このイベント中はどのフォーカスも選択されていない状態で、
このイベント終了後、他のコントロールにフォーカスが当たるイベントが発生するためではないでしょうか。
間違ってるかもしれませんので、ここら辺は調べてください。

あと、selectedは反転させるだけで、フォーカスは当たらない気がします。
フォーカスを当てたいのであれば、

DataGridView.CurrentCell = DataGridView.Rows(0).Cells(3)

じゃないですかね。
但し、CellLeaveイベントでは使用できないと思います。

確信をついた解答じゃなくてすみません。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2009-01-21 18:48
どうしてもやるということであれば、検証が終わった後のタイミング (CellValidated イベントなど) が望ましいのではないでしょうか。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)