0

ツリービューとノードのインデックス作成の仕組みに少し問題があります。私のプログラムには、任意の数のユーザーを含めることができるデータベースがあります。各ユーザーはキャリッジリターンで区切られます(つまり、1行に1人のユーザー)。データベース内のすべてのユーザーを一覧表示するツリービューオブジェクトを作成しています。ユーザーが特定のノードをクリックした場合、データベースから動的にノードを作成しているので、そのノードを参照/選択されているノードを処理するにはどうすればよいですか?

StreamReader getMembers = new StreamReader(@"[data]\db\users.db");
        List<string> mems = new List<string>();
        members.Nodes.Add("Members");
        while (!getMembers.EndOfStream)
        {
            mems.Add(getMembers.ReadLine());
        }
        foreach (string o in mems)
        {
            TreeNode n = new TreeNode(o);
            members.Nodes[0].Nodes.Add(n);
        }

データベースとプログラム:

ここに画像の説明を入力してください

4

2 に答える 2

1

選択されたツリー ノードを取得しようとしている場合は、TreeView.SelectedNodeプロパティによってそれを実現できます... (http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.selectednode.aspx )

選択したツリーノードでイベントを処理する場合は、イベントを登録しTreeView.AfterSelectます (http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.afterselect)。

例:

private void TreeView1_AfterSelect(System.Object sender, 
    System.Windows.Forms.TreeViewEventArgs e)
{

    // Vary the response depending on which TreeViewAction
    // triggered the event. 
    switch((e.Action))
    {
        case TreeViewAction.ByKeyboard:
            MessageBox.Show("You like the keyboard!");
            break;
        case TreeViewAction.ByMouse:
            MessageBox.Show("You like the mouse!");
            break;
    }
}
于 2012-06-11T06:04:48.600 に答える
0

標準フォームのツリービューを使用していると仮定すると、 TreeView.AfterSelectのイベントにサブスクライブしたいようです。

// Handle the After_Select event.
private void TreeView1_AfterSelect(System.Object sender, 
    System.Windows.Forms.TreeViewEventArgs e)
{
  // If (TreeView1.SelectedNode...
}
于 2012-06-11T06:05:44.217 に答える