2014-07-18 57 views
2

我想在TreeListLookupEdit中選擇一個節點。TreeListLookupEdit - 焦點節點

var fn = treeListLookupEdit1.FindNodeByKeyID(NodeId); 
treeListLookupEdit1.Properties.TreeList.FocusedNode = fn; 

我TreeListLookupEdit已經充滿了數據(從EF數據源),我需要關注該行並在這兩個treeListLookUpEdit1.Text看到這個值(當它處於關閉狀態),當我也打開一個彈出窗口。

但沒有任何反應,它不會選擇節點。

我也試過這個(其中 「樹節點」 是TreeListLookupEdit內的實際的TreeList):

treeNodes.FocusedNode = fn; 

但是,當我運行這段代碼,它的工作原理:

treeListLookupEdit1.ShowPopup(); 
treeListLookupEdit1.Properties.TreeList.FocusedNode = fn; 
treeListLookupEdit1.ClosePopup(); 

那麼,如何避免使用ShowPopup?

更新 看來,你應該設置的EditValue

treeListLookupEdit1.EditValue = NodeId 
+0

是否有任何屬性EditingValue? – Shell

+0

是的,TreeListLookupEdit有一個EditValue,但它什麼都不做。 – Dimitri

+0

然後我不認爲有沒有其他方法可以在不彈出查找的情況下集中樹節點。 – Shell

回答

1

您需要設置TreeListLookUpEdit.Properties.DisplayMember財產和財產TreeListLookUpEdit.Properties.ValueMember
TreeListLookUpEdit.Properties.DisplayMember屬性設置爲您要在TreeListLookupEditTreeListLookUpEdit.Properties.ValueMember到ID列中顯示的列,並使用TreeListLookUpEdit.EditValue來關注節點。
之後,你可以做這樣的事情:

treeListLookupEdit1.EditValue = fn.GetValue("YourIDColumn"); 

這裏是例如與DataTable作爲數據源:

var dataTable = new DataTable(); 

dataTable.Columns.Add("ID", typeof(int)); 
dataTable.Columns.Add("Parent_ID", typeof(int)); 
dataTable.Columns.Add("Name", typeof(string)); 

dataTable.Rows.Add(1, null, "1"); 
dataTable.Rows.Add(2, null, "2"); 
dataTable.Rows.Add(3, null, "3"); 
dataTable.Rows.Add(4, 1, "1.1"); 
dataTable.Rows.Add(5, 1, "1.2"); 
dataTable.Rows.Add(6, 3, "3.1"); 
dataTable.Rows.Add(7, 3, "3.2"); 
dataTable.Rows.Add(8, 5, "1.2.1"); 

var treeListLookUpEdit = new TreeListLookUpEdit(); 
var properties = treeListLookUpEdit.Properties; 

properties.DataSource = dataTable; 
properties.DisplayMember = "Name"; 
properties.ValueMember = "ID"; 

var treeList = properties.TreeList; 

treeList.KeyFieldName = "ID"; 
treeList.ParentFieldName = "Parent_ID"; 
treeList.RootValue = DBNull.Value; 

Controls.Add(treeListLookUpEdit); 

treeListLookUpEdit.Size = treeListLookUpEdit.CalcBestSize(); 

如果設置此treeListLookUpEdit對象例如EditValue屬性爲5,那麼你將請參閱控制中的「1.2」文本以及使用此類文本的節點將重點關注:

treeListLookUpEdit.EditValue = 5; 
+0

OP不想彈出查找編輯..這個事件會在沒有彈出查找編輯的情況下觸發嗎? – Shell

+0

它將選擇TreeList中的節點,但不會將該值設置爲實際的treeListLookUpEdit1。我將無法在關閉的TreeListLookupEdit上看到所選值 – Dimitri

+0

@Dimitri是否需要將值設置爲實際的treeListLookUpEdit1? – nempoBu4