Winforms 支架-焦点节点

Winforms 支架-焦点节点,winforms,devexpress,xtratreelist,Winforms,Devexpress,Xtratreelist,我正在尝试在TreeListLookupEdit中选择一个节点 var fn = treeListLookupEdit1.FindNodeByKeyID(NodeId); treeListLookupEdit1.Properties.TreeList.FocusedNode = fn; 我的TreeListLookupEdit已经填充了数据(来自EF数据源),我需要聚焦所需的行,并在treeListLookUpEdit1.Text(处于关闭状态时)和打开弹出窗口时查看该值 但是什么也没有发生,

我正在尝试在TreeListLookupEdit中选择一个节点

var fn = treeListLookupEdit1.FindNodeByKeyID(NodeId);
treeListLookupEdit1.Properties.TreeList.FocusedNode = fn;
我的TreeListLookupEdit已经填充了数据(来自EF数据源),我需要聚焦所需的行,并在treeListLookUpEdit1.Text(处于关闭状态时)和打开弹出窗口时查看该值

但是什么也没有发生,它不会选择节点

我也尝试过这个(其中“treeNodes”是TreeListLookupEdit中的实际TreeList):

但是,当我运行这段代码时,它是有效的:

treeListLookupEdit1.ShowPopup();
treeListLookupEdit1.Properties.TreeList.FocusedNode = fn;
treeListLookupEdit1.ClosePopup();
那么,如何避免使用ShowPopup呢

更新 看起来,您应该设置EditValue

treeListLookupEdit1.EditValue = NodeId
您需要设置属性和属性。
TreeListLookUpEdit.Properties.DisplayMember
属性设置为要在
TreeListLookUpEdit
TreeListLookUpEdit.Properties.ValueMember
中显示的列,并用于聚焦节点。
之后,您可以执行以下操作:

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();
例如,如果将此对象的
EditValue
属性设置为5,则您将在控件中看到“1.2”文本,并将聚焦具有此类文本的节点:

treeListLookUpEdit.EditValue = 5;

是否有类似EditingValue的属性?是的,TreeListLookupEdit有一个EditValue,但它不起任何作用。然后,我认为没有其他方法可以在不弹出查找的情况下聚焦树节点。OP不想弹出查找编辑。。此事件是否会在不弹出查找编辑窗口的情况下触发?它将在TreeList中选择节点,但不会将值设置为实际的treeListLookUpEdit1。我将无法在闭合的屏幕上看到所选的值TreeListLookupEdit@Dimitri是否需要将该值设置为实际的treeListLookUpEdit1?@nempoBu4,我的treeListLookUpEdit1已经填充了数据,我需要聚焦所需的行,并在treeListLookUpEdit1.Text中查看该值(当它处于关闭状态时)当我打开一个弹出窗口。
treeListLookUpEdit.EditValue = 5;