C# 重命名节点时出现Treeview问题
嗨,我已经写了一个代码来重命名树视图的节点。在编辑时,如果我删除所有文本并按enter键,它将被重命名,但如果用户输入一些带有extensionin.txt的文本,则只有我想重命名该名称 我调试了我的解决方案,删除了所有给出“”的文本,这样它就不会检查条件,如果按照我指定的方式留下错误消息,该怎么办 这是我的密码 //上下文菜单C# 重命名节点时出现Treeview问题,c#,winforms,treeview,C#,Winforms,Treeview,嗨,我已经写了一个代码来重命名树视图的节点。在编辑时,如果我删除所有文本并按enter键,它将被重命名,但如果用户输入一些带有extensionin.txt的文本,则只有我想重命名该名称 我调试了我的解决方案,删除了所有给出“”的文本,这样它就不会检查条件,如果按照我指定的方式留下错误消息,该怎么办 这是我的密码 //上下文菜单 private void renameToolStripMenuItem_Click(object sender, EventArgs e) {
private void renameToolStripMenuItem_Click(object sender, EventArgs e)
{
string strOld = treeViewACH.SelectedNode.ToString();
treeViewACH.SelectedNode.BeginEdit();
}
//在选定节点上显示关联菜单的步骤
private void treeViewACH_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (treeViewACH.SelectedNode.Parent != null)
{
string strSwitch = treeViewACH.SelectedNode.Parent.Text;
switch (strSwitch)
{
case "FileHeader":
//string strOld = treeViewACH.SelectedNode.Text.ToString();
contextMenuStrip1.Show(treeViewACH, e.Location);
break;
}
}
else
{
// MessageBox.Show("Left clicked");
}
}
}
//改名
private void treeViewACH_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
if (e.Label.IndexOfAny(new char[]{'\\',
'/', ':', '*', '?', '"', '<', '>', '|'}) != -1)
{
MessageBox.Show("Invalid tree node label.\n" +
"The tree node label must not contain " +
"following characters:\n \\ / : * ? \" < > |",
"Label Edit Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
e.CancelEdit = true;
return;
}
}
private void treeViewACH_AfterLabelEdit(对象发送方,NodeLabelEditEventArgs e)
{
如果(e.Label.IndexOfAny)(新字符[]{'\\',
'/', ':', '*', '?', '"', '', '|'}) != -1)
{
MessageBox.Show(“无效的树节点标签。\n”+
“树节点标签不能包含”+
“以下字符:\n\\/:*?\”<>|“,
“标签编辑错误”,MessageBoxButtons.OK,
MessageBoxIcon.Error);
e、 CancelEdit=true;
返回;
}
}
您应该仔细检查细节以解决此问题
从我对您的问题的了解可以看出,您正在尝试使用户只能将树节点的文本更改为以“.txt”结尾的字符串值。假设您正试图这样做,您的AfterLabelEdit逻辑可以更改为:
private void treeViewACH_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
if (!e.Label.EndsWith(".txt"))
{
MessageBox.Show("Invalid tree node label.\n" +
"The tree node label must end with " +
"the extension: .txt",
"Label Edit Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
e.CancelEdit = true;
return;
}
}