C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: DataGridViewのボタンエンター時の処理について


(過去ログ 94 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■56394 / inTopicNo.1)  DataGridViewのボタンエンター時の処理について
  
□投稿者/ nagaポン (4回)-(2011/01/12(Wed) 17:01:16)

分類:[.NET 全般] 

DataGridView内にボタンをつくりフォーカスがあるときにエンターキーを押した場合(KeyDown)
次の行へ行かずにマウスクリック時(SellClick)と同じ処理を行いたいのですが良い方法はないでしょうか
SellClick時には
If DataGridView.Columns(e.ColumnIndex).Name = "Button1" Then
を使っているのですがKeyDown時にも似たようなものはないでしょうか
お願いします
引用返信 編集キー/
■56396 / inTopicNo.2)  Re[1]: DataGridViewのボタンエンター時の処理について
□投稿者/ じゃんぬねっと (21回)-(2011/01/12(Wed) 22:02:31)
No56394 (nagaポン さん) に返信
> DataGridView内にボタンをつくりフォーカスがあるときにエンターキーを押した場合(KeyDown)
> 次の行へ行かずにマウスクリック時(SellClick)と同じ処理を行いたいのですが良い方法はないでしょうか

"KeyDown イベントより前に規定の動作が作動するから" という原因がわかると、回避方法は見えてきそうです。
手っ取り早い方法は Process~ をオーバーライドする方法ですが、他にも方法があったような気が... 忘れました。(^^;

> SellClick時には
> If DataGridView.Columns(e.ColumnIndex).Name = "Button1" Then
> を使っているのですがKeyDown時にも似たようなものはないでしょうか
> お願いします

SellClick とは CellClick のことで良いですよね。
そのコードで何をやろうとしているのか、少し悩みます。
「ButtonCell かどうかを確かめたい」のであれば、TypeOf を使うでしょうし、特定のセルであることを確認するならインスタンスで比較するでしょうし、何でしょう?
引用返信 編集キー/
■56398 / inTopicNo.3)  Re[1]: DataGridViewのボタンエンター時の処理について
□投稿者/ bagabond (10回)-(2011/01/12(Wed) 22:06:26)
No56394 (nagaポン さん) に返信
DatagridViewのKeyDownイベントプロシージャで、カレントセルがボタンの場合は、CellClickイベントプロシージャをコールして、KeyDown処理を「処理済み」にすれば良いのでは?


Private Sub DataGridView1_KeyDown(Byval sender As Object, Byval e As System.Windows.Forms.KeyEventArgs)
Dim oDGV As DataGridView = DirectCast(sender, DataGridView)
'
'途中省略:カレントのセルがボタンの場合
'
DataGridView1_CellClick(sender, New System.Windows.Forms.DataGridViewCellEventArgs(oDGV.CurrentCell.ColumnIndex, oDGV.CurrentCell.RowIndex)

e.Handeled = True  <- KeyDown処理を「処理済み」にする

End Sub

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -