DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ダブルクリック

環境/言語:[vb.net 2003]
分類:[.NET]

DataGridである列をダブルクリックして
別画面に飛ぶようにするには、どうすればよいでしょうか?

試した事

・列単位のテキストにダブルクリックイベントを作成。
 結果、列をダブルクリックしてもイベントが起きない

・DataGridのPaintイベントで選択した行を選択状態にし、
 DataGridのダブルクリックイベントを作成
 結果 ダブルクリックで別画面に移る事ができる。
    ただし、列に入力項目がある所で文字を入力すると、一文字しか入らない
    Paintイベントが邪魔しているようにも感じる

他に何か方法があれば教えてください
単に「DataGridの」ダブルクリックイベントをハンドルすればいいのでは?

列はHitInfoで判別
HitInfoはマウスボタンイベントで記憶
■No14806に返信(SadManさんの記事)
> 単に「DataGridの」ダブルクリックイベントをハンドルすればいいのでは?
>
> 列はHitInfoで判別
> HitInfoはマウスボタンイベントで記憶
>

SadManさん。こんにちわ

Private Sub DataGrid1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.DoubleClick

ということですよね?

セル?カラム?の所にダブルクリックをしても何も反応がありません。
選択状態にしていないと、イベントが走らないと思いますが。
他に何か方法があるのでしょうか?
DataGridのPaintイベントで選択した行を選択状態にしているということですが、この処理をなくせば、ダブルクリックイベントが発生するということでしょうか?はじめのクリックでセルがアクティブになり、テキストボックスが表示されると、次のクリックはそのテキストボックスのクリックとなるため、このような場合はダブルクリックイベントは発生しなかったような気がしますが。

このようなケースの場合、セルがアクティブにならなければ良いわけですが、その方法は、

DOBON.NET .NET Tips - DataGridで複数行選択できないようにし、セルがアクティブにならならず、行全体が選択されるようにする
http://dobon.net/vb/dotnet/datagrid/singleselect.html

で紹介しています。
  • 題名: Re[4]: ダブルクリック
  • 著者: 匠
  • 日時: 2006/02/03 11:02:35
  • ID: 14831
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No14827に返信(管理人さんの記事)

管理人さん。おはようございます。

セルのアクティブが原因なんですね。
セルのアクティブ + ダブルクリックで計3回ということですか。
Paintイベントを外して実行してみると、最初は3回で、次からは2回のクリック
でダブルクリックのイベントが発生するので、なぜかなと考えていました。
選択が原因なのか?と色々と考えてました。

どうもご指摘ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板