选择 TreeView 节点中的部分文本

问题描述 投票:0回答:1

Visual Studio 有这个非常好的“解决方案资源管理器”,我认为它是某种形式的 TreeView。当您重命名文件时,它仅选择文件名,而不选择扩展名。
enter image description here

但是,树视图似乎没有公开仅选择部分文本的方法。当您

treeview.BeginEdit()
时,它会选择所有文本。
enter image description here

有没有办法在开始编辑时仅选择节点中的部分文本?

c# winforms treeview
1个回答
0
投票

一个简单的解决方案是使用

SendKeys
发送 SHIFT-右箭头来进行选择。也许有更好的方法使用
PINVOKE
TVITEMEX

TreeView tv = new TreeView { Dock = DockStyle.Fill };
tv.LabelEdit = true;
TreeNode tn = tv.Nodes.Add("Blah.cs");
Form ff = new Form();
ff.Controls.Add(tv);
tv.BeforeLabelEdit += (o, e) => {
    String text = e.Node.Text;
    int x = text.IndexOf('.');
    if (x > 0) {
        SendKeys.Send("{HOME}");
        for (int i = 0; i < x; i++)
            SendKeys.Send("+{RIGHT}");
    }
};
© www.soinside.com 2019 - 2024. All rights reserved.