0

Visual Basic でヘルプ ファイルを作成しようとしています。TreeViewフォームの左にパネル、右にを使用して、古いスタイルのヘルプ ファイルを複製するというルートをたどることにしましたRichTextbox。(このセットアップは、PowerShellのヘルプ ファイルとほぼ同じように見えます。

TreeView Nodeaが適切なテキストに変更されるSingle Clickedようにしようとしています。RichTextbox Textこれが私のコードです:

 Private Sub treeView_NodeMouseClick(ByVal sender As Object, ByVal e As TreeNodeMouseClickEventArgs) Handles TreeViewContents.NodeMouseClick
        If e.Node.Text.Equals("Program Help") Then
            RTBHelp.Text = Environment.NewLine & "Help text here."
        End If

        If e.Node.Text.Equals("Program Getting Started") Then
            RTBHelp.Text = Environment.NewLine & "Getting Started text here"
        End If

    End Sub

問題は、 の横にあるPlusまたはをクリックするだけでテキストが変わることです。しかし、 PowerShellヘルプの動作をエミュレートしたいと思います。ここでは、またはをクリックするとノードが展開または折りたたまれますが、. 名前 ( ) 自体をクリックした場合にのみ、変更する必要があります。いくつかの方法を試しましたが、どれもうまくいかないようです。私は何をしますか?MinusTreeView NodePlusMinusRichTextbox TextNodesTextRichTextbox Text

4

2 に答える 2

1

これは遅すぎるかもしれませんが、私は同じ問題を抱えていました。AfterSelect イベントを使用しました。ノードを展開してノードをクリックしているため、ノードを展開しようとすると NodeClick イベントが発生するのは論理的です。マウスによる選択のみに関心がある場合は、e.Action = TreeViewAction.ByMouse かどうかを確認する必要があります。

Private Sub treeView_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles treeView.AfterSelect
    If e.Action = TreeViewAction.ByMouse Then
        If e.Node.Text.Equals("Program Help") Then
          RTBHelp.Text = Environment.NewLine & "Help text here."
        End If

        If e.Node.Text.Equals("Program Getting Started") Then
            RTBHelp.Text = Environment.NewLine & "Getting Started text here"
        End If
    End If

End Sub

「if TreeViewAction.ByMouse then ...」を使用すると、矢印キーまたはマウスを押すと if ステートメントの下のコードが実行されます。したがって、マウスの選択のみを捕捉する場合、最初の If ステートメントは非常に重要です。

于 2013-08-14T12:31:15.223 に答える
0

代わりに AfterSelect イベントを使用してください。

于 2013-05-21T18:50:34.903 に答える