在Winform界面中,有的用到了TreeList控件。并且有一些功能需要用户在一个文本框中输入某些关键字,点击一个按钮能够自动去一个一个的匹配,并定位到拥有关键字的树节点。
类似于:
为达到该功能,我写了一个公共方法方便系统中多处使用。
/// <summary>
/// 通过字符串设置焦点节点
/// </summary>
/// <param name="tr">树</param>
/// <param name="displayText">显示值</param>
public void SetFocusedNodeByDisplayText(TreeList tr, string displayText)
{
if (tr.Nodes.Count == 0) return;
List<TreeListNode> lstNode = tr.GetNodeList(); //获取树的所有节点
int i = lstNode.IndexOf(tr.FocusedNode); //焦点节点所在的位置
int beginIndex = i + 1; //开始搜索匹配的位置
int waitIndex = lstNode.Count - 1 - i; //开始位置后面需要匹配的节点位数
bool isFind = false;