كيف يمكن ضبط Maxlength لاسم Tereenode والخاصية النصية؟

StackOverflow https://stackoverflow.com/questions/1298228

  •  18-09-2019
  •  | 
  •  

سؤال

كيف يمكن ضبط Maxlength لاسم Tereenode والخاصية النصية؟ هذا هو تطبيق Windows Forms، حيث ينقر المستخدم بزر الماوس الأيمن على TreeView لإضافة عقدة وطول طول اسم Tereenode 40 حرفا. حاليا أنا أتحقق من ذلك في حدث ما بعد الظهر، ورمي رسالة إذا لا. من الأحفير يتجاوز. ولكن تقول متطلبها أن تحد من الطول دون إظهار مربع الرسالة ونحن نفعل في مربعات النص.

شكرا.

هل كانت مفيدة؟

المحلول

يمكنك عرض مربع نص عبر TreeView وتعيين 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;
    }

ثم في عرض Tree View 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();
    }

من المحتمل أنك تريد إضافة بعض الوظائف الإضافية إلى مربع النص، بحيث تقوم بأحجامها بشكل صحيح بناء على عرض عرض الشجرة وأيضا يقبل النص الجديد على عودة المستخدم، إلخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top