【问题标题】:Why does winforms TreeView treenode say 'treenode:' in the node?为什么winforms TreeView treenode在节点中说'treenode:'?
【发布时间】:2013-11-15 06:11:20
【问题描述】:

每个人: 当我运行以下代码时,一切正常,但运行应用程序时每个节点都会显示“TreeNode:”字样。该应用程序是 C Sharp Winform .NET 4.0。

而不是每个节点都说: 12345 日期:1/1/1980 - 客户:XYZ

他们说: 树节点:12345 日期:1/1/1980 - 客户:XYZ。

我正在使用 .NET 4.0。我不经常使用 TreeView,但我从未在旧版本的 .NET 中看到过这个问题。

感谢您的帮助。 戴尔

quotesTreeView.BeginUpdate();
quotesTreeView.Nodes.Clear();

for (int i = 0; i < sqmTable.Rows.Count; i++)
{
    if (currentQuoteNumber != sqmTable.Rows[i]["QuoteNumber"].ToString())
    {                        
        quotesTreeView.Nodes.Add(new TreeNode(sqmTable.Rows[i]["QuoteNumber"].ToString()) + " Date: " + sqmTable.Rows[i]["QuoteDate"].ToString() + " - Customer:" +  sqmTable.Rows[i]["CustomerName"].ToString());

        quotesTreeView.Nodes[masterNodeNumber].Tag = C_MASTER + "," + sqmTable.Rows[i]["QuoteNumber"].ToString();
        quotesTreeView.Nodes[masterNodeNumber].ImageIndex = C_IMAGE_QLOGO;
        quotesTreeView.Nodes[masterNodeNumber].SelectedImageIndex = C_IMAGE_QLOGO;

        currentQuoteNumber = sqmTable.Rows[i]["QuoteNumber"].ToString();
        masterNodeNumber = quotesTreeView.Nodes.Count-1;
    }
}

【问题讨论】:

  • 看起来您的数据列 QuoteNumber 有前缀 TreeNode:
  • 您可以在控件的属性中为每个节点设置文本。

标签: c# winforms treeview


【解决方案1】:

这是 TreeNode.ToString() 方法的实现:

public override string ToString()
{
    return ("TreeNode: " + ((this.text == null) ? "" : this.text));
}

所以你看到的并不是什么大谜团。例如,当您检查节点时,您会在调试器中看到它。如果您确实在您的 UI 中看到它,那么在将行添加到“sqmTable”的代码中是一个很好的查看位置。确保它使用节点的 Text 属性而不是 ToString()。

【讨论】:

    猜你喜欢
    • 2012-08-24
    • 2019-05-15
    • 2011-02-11
    • 2014-04-20
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多