c# حذف - تعيين المؤشر في نهاية أي نص في مربع نص




حدود خطوط (5)

هذا السؤال لديه بالفعل إجابة هنا:

لدي مربع نص به سلسلة معروضة موجودة فيه بالفعل. لجلب المؤشر إلى مربع النص الذي أقوم به بالفعل

txtbox.Focus();

ولكن كيف يمكنني الحصول على المؤشر في نهاية السلسلة في مربع النص؟


Answers

يمكنك تعيين موضع علامة الإقحام باستخدام TextBox.CaretIndex . إذا كان الشيء الوحيد الذي تحتاجه هو ضبط المؤشر في النهاية ، فيمكنك ببساطة تمرير طول السلسلة ، على سبيل المثال:

txtBox.CaretIndex=txtBox.Text.Length;

تحتاج إلى تعيين فهرس حرف الإقحام في الطول ، وليس length-1 ، لأن هذا سيضع علامة الإقحام قبل الحرف الأخير.


يمكنك التحكم في موضع المؤشر (واختيار) مع خصائص txtbox.SelectionLength و txtbox.SelectionLength . إذا كنت ترغب في تعيين حرف الإقحام ، فجرّب ذلك:

txtbox.SelectionStart = txtbox.Text.Length -1 // add some logic if length is 0
txtbox.SelectionLength = 0

ل WPF نرى هذا المنصب .


هناك عدة خيارات:

txtBox.Focus();
txtBox.SelectionStart = txtBox.Text.Length;

أو

txtBox.Focus();
txtBox.CaretIndex = txtBox.Text.Length;

أو

txtBox.Focus();
txtBox.Select(txtBox.Text.Length, 0);

حاول مثل أدناه ... سوف يساعدك ...

بعض الوقت في Window Form Focus() لا يعمل بشكل صحيح. لذلك أفضل يمكنك استخدام Select() لتركيز مربع النص.

txtbox.Select(); // to Set Focus
txtbox.Select(txtbox.Text.Length, 0); //to set cursor at the end of textbox

استخدم الأقواس المزدوجة {{ or }} حتى يصبح الرمز الخاص بك:

sb.AppendLine(String.Format("public {0} {1} {{ get; private set; }}", 
prop.Type, prop.Name));

// For prop.Type of "Foo" and prop.Name of "Bar", the result would be:
// public Foo Bar { get; private set; }






c# wpf textbox cursor-position