如何为 TreeNode Name 和 text 属性设置 MaxLength?这是一个 Windows 窗体应用程序,用户右键单击树视图以添加节点,树节点名称的最大长度应为 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();
}
您可能希望向文本框添加一些附加功能,以便它根据树视图的宽度正确调整大小,并在用户点击返回时接受新文本等。