VB.NET 2008(WindowsXP SP3)のTreeViewにおける右クリックの制御について教えてください。


制御内容は動作しないようにするか、もしくは左クリックと同様の動作にすることです。
右クリックをすると一瞬だけ反応(選択された状態)になるものの、直ぐ直前の位置へ
選択状態が戻る反応が気になったので、なんとか修正したいのです。
よろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/02/26 23:25:04
  • 終了:2010/03/05 23:25:03

回答(2件)

id:heke2mee No.1

heke2mee回答回数162ベストアンサー獲得回数432010/02/27 00:15:37

ポイント35pt

これでいけと思います。

    Private Sub TreeView1_NodeMouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
        If (e.Button = MouseButtons.Right) Then
            TreeView1.SelectedNode = e.Node
        End If
    End Sub
id:halohalolin

heke2meeさんありがとうございます!参考にさせていただきます。

2010/02/27 00:42:41
id:heke2mee No.2

heke2mee回答回数162ベストアンサー獲得回数432010/02/28 04:58:28

ポイント35pt

右クリックを無効にする方法

TreeViewを継承してMyTreeViewを作成し、そのなかでマウスの右クリックを無効にします。

Public Class MyTreeView
    Inherits System.Windows.Forms.TreeView

    Const WM_RBUTTONDOWN As Integer = &H204
    Dim RES As New IntPtr(0)

    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
        Select Case m.Msg
            Case WM_RBUTTONDOWN
                m.Result = RES
                Return

        End Select

        MyBase.WndProc(m)
    End Sub

End Class
id:halohalolin

heke2meeさんありがとうございます。

C++でWndProcを触った事があるのですが、VBではこのように記述するのですね。

参考にさせていただきます。

2010/02/28 10:03:32
  • id:heke2mee
    右クリックを無効にする方法を追加で回答しておきました。
    問題が解決している場合はオープンしないで下さい。
  • id:halohalolin
    heke2mee さん、何度も投稿していただいてありがとうございます。
    またわざわざ注意書きのコメントを記述していただいて感謝しています。

    職場で必要なコーディングでしたので、明日(月曜日)に試す予定です。
    もしかすると2番目は今回は不要なのかもしれませんが、その他のイベント処理が必要になった時に参考になると考えています。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません