[英]Panel Does not update TreeView
我有一個顯示在面板內的TreeView。 TreeView中的數據基於從數據庫返回的數據。 第一次,數據是正確的。 第二次,不刷新TreeView,並且先前的數據仍顯示在樹中。 我檢查了包含數據的列表。 該列表返回了正確的數據。 我已經找到了Google的問題,並且無法通過發布的一些答案來解決。 這是有關如何創建TreeView並將其添加到面板的示例代碼。
ReportGroups gr = new ReportGroups();
var Name = gr.GetReportName(groupID);
TreeView tr = new TreeView();
tr.BeginUpdate();
tr.Size = new Size(570, 600);
tr.Name = "Home";
tr.Nodes.Add("Reports Name");
tr.CheckBoxes = true;
if (Name.Count() > 0)
{
foreach (var item in Name)
{
if (item != null)
{
tr.Nodes[0].Nodes.Add(item.reportName);
}
}
}
tr.Nodes[0].ExpandAll();
tr.EndUpdate();
this.pDisplayReportName.Width = tr.Width * 2;
this.pDisplayReportName.Height = 300;
this.pDisplayReportName.Controls.Add(tr);
this.pDisplayReportName.Refresh();
我究竟做錯了什么?
最簡單的選擇是使用this.pDisplayReportName.Controls.Clear();
就在tr.EndUpdate();
。 但是,如果您在同一面板中有其他控件,則可能會導致問題。
最好的選擇是使用this.pDisplayReportName.Controls.RemoveByKey("MyTree");
而不是this.pDisplayReportName.Controls.Clear();
並且,另一種選擇是在設計時添加TreeView(名稱為tr
),而不是動態地添加到面板中。 然后,使用tr.Nodes.Clear();
在tr.BeginUpdate();
之前tr.BeginUpdate();
並從代碼中刪除以下兩行。
TreeView tr = new TreeView();
.
.
.
this.pDisplayReportName.Controls.Add(tr);
干杯
嘗試添加this.pDisplayReportName.Clear();
因此數據不會加倍。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.