如何在C#的树视图中显示所选节点的显示值
本文关键字:显示 节点 视图 | 更新日期: 2023-09-27 18:20:05
我正在尝试创建一个从sql数据库中提取信息的树视图。我希望文本是名称字段,但当您双击名称时,我希望它显示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(已解决)**:也可以使用"名称"特性。像这样:
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"answers"Dexter先生"。
foreach (DataRow dr in Db.Table("Employee").Rows)
{
TreeNode tn = new TreeNode();
tn.Tag = dr["eeid"];
tn.Text = dr["Name"].ToString();
treeView1.Nodes.Add(tn);
}
private void treeView1_DoubleClick(object sender, EventArgs e)
{
MessageBox.Show(treeView1.SelectedNode.Tag.ToString());
}
您可以使用鼠标点击事件。当您单击某个特定节点时(假设它不是WPF原因,那么它是Items),您可以从SelectedNode属性中获取其Text。
private void btnGetNodeValue_Click(object sender, EventArgs e)
{
string nodeVal= treeView1.SelectedNode.Text;
}
然后,您可以将这个字符串值传递给数据库以检索您的值,并将其与Select语句和WHERE子句混合使用,这样您就可以轻松地获取它。