对于树节点名称和文本属性如何设置的MaxLength? 这是一个Windows窗体应用程序,在用户用鼠标右击一个TreeView添加一个节点和树节点名称的最大长度为40个字符。 目前,我在AfterlabelEdit活动进行检查,并抛出如果没有消息。 字符的超过。 但requiremnet说要限制长度没有表现出我们在文本框做消息框。
谢谢。
对于树节点名称和文本属性如何设置的MaxLength? 这是一个Windows窗体应用程序,在用户用鼠标右击一个TreeView添加一个节点和树节点名称的最大长度为40个字符。 目前,我在AfterlabelEdit活动进行检查,并抛出如果没有消息。 字符的超过。 但requiremnet说要限制长度没有表现出我们在文本框做消息框。
谢谢。
你可以显示在树视图的文本框,并设置的MaxLength上。
要做到这一点的方法之一是创建窗体的文本框:
private TextBox _TextBox;
public Form1()
{
InitializeComponent();
_TextBox = new TextBox();
_TextBox.Visible = false;
_TextBox.LostFocus += new EventHandler(_TextBox_LostFocus);
_TextBox.Validating += new CancelEventHandler(_TextBox_Validating);
this.Controls.Add(_TextBox);
}
private void _TextBox_LostFocus(object sender, EventArgs e)
{
_TextBox.Visible = false;
}
private void _TextBox_Validating(object sender, CancelEventArgs e)
{
treeView1.SelectedNode.Text = _TextBox.Text;
}
然后,在树视图BeforeLabelEdit设置文本框的MaxLength并显示在当前选定的节点:
private void treeView1_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e)
{
_TextBox.MaxLength = 10;
e.CancelEdit = true;
TreeNode selectedNode = treeView1.SelectedNode;
_TextBox.Visible = true;
_TextBox.Text = selectedNode.Text;
_TextBox.SelectAll();
_TextBox.BringToFront();
_TextBox.Left = treeView1.Left + selectedNode.Bounds.Left;
_TextBox.Top = treeView1.Top + selectedNode.Bounds.Top;
_TextBox.Focus();
}
你可能会想,因此正确的纸型根据树视图的宽度,还添加一些额外的功能添加到文本框,所以它接受用户的新文本击中返回等