Привет всем, я написал код для переименования узла дерева.При редактировании, если я удаляю весь текст и нажимаю клавишу ввода, он переименовывается, но если пользователь вводит какой-то текст с расширением .txt, то только я бы хотел переименовать это имя.
Я отладил свое решение, удалив всетекст дает "", так что он не проверяет условие, что нужно сделать, чтобы вызвать сообщение об ошибке, если оно оставлено, как я указал
Это мой код
// Contextmenu
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;
}
}