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

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

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

Re[4]: Treeviewを選択してイベント実行


(過去ログ 164 を表示中)

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

■94749 / inTopicNo.1)  Treeviewを選択してイベント実行
  
□投稿者/ マリ夫 (7回)-(2020/05/12(Tue) 15:45:43)

分類:[VB.NET/VB2005 以降] 

Visualstudio2019、VB.NETでFORMアプリケーションを作成しています。
Treeviewへのノードの追加について教えていただけたらと思います。

以下のようなTreeviewがあるとき、LIST1-AA、LIST1-BB、LIST1-CCを選択したとき、イベントを走らせるようにしています。
TreeView1.AfterSelectでイベントを走らせているのですが、例えば、LIST1-AAを選択してイベント後、
再度LIST1-AAを選択した時、イベントが走りません。

TEST1
┣TEST1-A
┃┗LIST1-AA

┣TEST1-B
┃┗LIST1-BB

┗TEST1-C
 ┗LIST1-CC


このような状況で、イベントを発生させるにはどのようにすればよいのでしょうか
教えていただけたらと思います。
よろしくお願いします。
引用返信 編集キー/
■94751 / inTopicNo.2)  Re[1]: Treeviewを選択してイベント実行
□投稿者/ 魔界の仮面弁士 (2713回)-(2020/05/12(Tue) 15:55:23)
No94749 (マリ夫 さん) に返信
> TreeView1.AfterSelectでイベントを走らせているのですが、例えば、LIST1-AAを選択してイベント後、
> 再度LIST1-AAを選択した時、イベントが走りません。

AfterSelect は、「他のノード」が選択された後に発生します。
選択済みのノードを再選択しても、「既に選択済み」なので、イベントは発生しません。

また、ノードを選択するには、マウスやキーボードなどの方法がありますが、
現状はどのように選択していますか?

Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        With TreeView1.Nodes.Add("TEST1").Nodes
            .Add("TEST1-A").Nodes.Add("LIST1-AA")
            .Add("TEST1-B").Nodes.Add("LIST1-BB")
            .Add("TEST1-C").Nodes.Add("LIST1-CC")
        End With
        TreeView1.ExpandAll()
    End Sub

    Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterSelect
        ListBox1.Items.Insert(0, String.Format("{0}, {1}", e.Node.Text, e.Action))
    End Sub
End Class

引用返信 編集キー/
■94752 / inTopicNo.3)  Re[2]: Treeviewを選択してイベント実行
□投稿者/ マリ夫 (8回)-(2020/05/12(Tue) 16:04:34)
No94751 (魔界の仮面弁士 さん) に返信
> ■No94749 (マリ夫 さん) に返信
>>TreeView1.AfterSelectでイベントを走らせているのですが、例えば、LIST1-AAを選択してイベント後、
>>再度LIST1-AAを選択した時、イベントが走りません。
>
> AfterSelect は、「他のノード」が選択された後に発生します。
> 選択済みのノードを再選択しても、「既に選択済み」なので、イベントは発生しません。
なるほど
だからイベントが発生しなかったんですね

>
> また、ノードを選択するには、マウスやキーボードなどの方法がありますが、
> 現状はどのように選択していますか?
キーボードでの選択は行わず、マウスのみで選択を行う想定です。
引用返信 編集キー/
■94753 / inTopicNo.4)  Re[3]: Treeviewを選択してイベント実行
□投稿者/ 魔界の仮面弁士 (2714回)-(2020/05/12(Tue) 16:08:49)
No94752 (マリ夫 さん) に返信
>>また、ノードを選択するには、マウスやキーボードなどの方法がありますが、
>>現状はどのように選択していますか?
> キーボードでの選択は行わず、マウスのみで選択を行う想定です。

であれば、AfterSelect のかわりに NodeMouseClick イベントは如何でしょう?


なお、現在選択中の祖先ノードが折りたたまれた場合、
選択されているノードが変更される点に注意してください。
それでは都合が悪い場合は、[+]/[-] を使えなくしてしまうか、
あるいは CheckBoxes プロパティで代用するという手もあります。

引用返信 編集キー/
■94754 / inTopicNo.5)  Re[4]: Treeviewを選択してイベント実行
□投稿者/ マリ夫 (9回)-(2020/05/12(Tue) 16:35:19)
No94753 (魔界の仮面弁士 さん) に返信
> ■No94752 (マリ夫 さん) に返信
> >>また、ノードを選択するには、マウスやキーボードなどの方法がありますが、
> >>現状はどのように選択していますか?
>>キーボードでの選択は行わず、マウスのみで選択を行う想定です。
>
> であれば、AfterSelect のかわりに NodeMouseClick イベントは如何でしょう?
>
>
> なお、現在選択中の祖先ノードが折りたたまれた場合、
> 選択されているノードが変更される点に注意してください。
> それでは都合が悪い場合は、[+]/[-] を使えなくしてしまうか、
> あるいは CheckBoxes プロパティで代用するという手もあります。
>
NodeMouseClickのプロパティでクリックしたノードのLevelを条件にイベントを走らせるようにしたら、上手く動作しました。
ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -