Visual Studio 有这个非常好的“解决方案资源管理器”,我认为它是某种形式的 TreeView。当您重命名文件时,它仅选择文件名,而不选择扩展名。
但是,树视图似乎没有公开仅选择部分文本的方法。当您
treeview.BeginEdit()
时,它会选择所有文本。有没有办法在开始编辑时仅选择节点中的部分文本?
一个简单的解决方案是使用
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}");
}
};