c# - 如何在 C# 的 TreeView 中显示选定节点的显示值?

标签 c# sql treeview

我正在尝试创建一个从 sql 数据库中提取信息的 TreeView 。我希望文本成为名称字段,但是当您双击名称时,我希望它显示 id 字段。我看了又看,但找不到任何相关信息?

尝试过的代码(从 OP 的评论中添加):

   foreach (DataRow dr in Db.Table("Employee").Rows) 
   { 
      treeView1.Nodes.Add(
             new TreeNode(dr["Name"].ToString(),
             new TreeNode[] {new TreeNode(dr["EEID"].ToString())}));
   } 
      var node = treeView1.SelectedNode.Nodes[0].Text; 
      MessageBox.Show(string.Format("You selected: {0}", node));

最佳答案

当您为 TreeView 创建新节点时,您可以指定文本值和键值,如下所示:

TreeView tv = new TreeView();
tv.Nodes.Add(key, text); //where key is your database id value, and text the display 

然后您只需返回单击节点的键。这是你想要的吗?

编辑:当您凭内存说话时会发生这种情况...这是错误。 'key'不是隐藏的键值,像ID一样,'key'是树节点的名称。请稍等,我给你一个合适的解决方案。

** EDIT2(已解决)**:您还可以使用 Name 属性。像这样:

tView.Nodes.Add("Id_0001", "Mr. Dexter");

然后你可以用这样的东西检索那个节点的值:

    private void tvView_AfterSelect(object sender, TreeViewEventArgs e)
    {
        TreeNode node = e.Node;
        MessageBox.Show(node.Name + "\n" + node.Text);
    }

这将产生结果:“Id_0001”和“Mr. Dexter”。

关于c# - 如何在 C# 的 TreeView 中显示选定节点的显示值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8822851/

相关文章:

c# - 使用 TreeView 数据和同步选择填充组合框

css - 删除使用伪类添加的 JavaFX TreeCell 格式

php - 具体如何制作 "tree view"

MySQL : Using alias inside a join condition

sql oracle更新日期

c# - 关闭或处置

c# - WPF VisualTreeHelper.HitTest 使用多线程

c# - 如果 socket.connect() 函数卡住了,如何停止它?

c# - 在 WinRT Prism/MVVM 中对 ComboBox 的 SelectedValue 进行数据绑定(bind)

php - 根据 table1 中的值从 table2 中选择行