الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال: اضافة خاصية SelectAll للـTextbox + الانتقال عن طريق Enter

بدأه aohammed في 5 أبريل 2013 · 9 رد · 930 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

إخواني,

 

هل هناك طريقة ما, لجعل كل الـTextboxes يتم تظليل كل ما بداخل الـbox عندما ينتقل المستخدم لها, سواء عن طريق Tab أو Enter أو عند مجرد الضغط على الstring داخل الـbox

 

أنا أعلم أنني أستطيع فعل ذلك يدوياً !

لكن ذلك يعني لكل عنصر TextBox و كم سيأخذ ذاك من وقتي و جهدي !

 

فهل يمكن التعديل بخصائص العنصر TextBox الأساسية ؟!

 

و أيضاً, أريد ميزة الانتقال إلى كل Tab عن طريق مجرد ضغط Enter بالكيبورد,

جزاكم الله خيراً !

#2

أي, مختصراً لكلامي السابق,

أريد فقط أن أجعل كل عناصر الـTextboxs' في المشروع تحوي تلقائياً على الـEvent "Enter" (على ما أظن), و يحوي بداخله Textbox1.SelectAll();

 

من غير الطريقة اليدوية!

#3

أخي الفاضل

بمنتهي البساطة

 

سنفترض اننا سنقوم بمليء TextBox2.Text في حدث Form_Load ببعض البيانات 

مثلا سنملئه من 1 الي الرقم 6 كما هو موضح بالكود

وعند الضغط Enter علي TextBox1 في حدث KeyDown سينتقل المؤشر من TextBox1 الي TextBox2 ثم يقوم بعمل Select ALL للبيانات الموجوده بداخل TextBox2

 

 

مثال

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox2.Text = "123456"
    End Sub


    Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            TextBox2.Focus()
            TextBox2.SelectAll()
        End If
    End Sub

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#4
محمد فؤاد تركي كتب:

أخي الفاضل

بمنتهي البساطة

 

سنفترض اننا سنقوم بمليء TextBox2.Text في حدث Form_Load ببعض البيانات 

مثلا سنملئه من 1 الي الرقم 6 كما هو موضح بالكود

وعند الضغط Enter علي TextBox1 في حدث KeyDown سينتقل المؤشر من TextBox1 الي TextBox2 ثم يقوم بعمل Select ALL للبيانات الموجوده بداخل TextBox2

 

 

مثال

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox2.Text = "123456"
    End Sub


    Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            TextBox2.Focus()
            TextBox2.SelectAll()
        End If
    End Sub

شكراً لك أخي,

و لكن هذا الشيء أعرفه,

فالمشكلة, أن مشروعي به أكثر من 100 Textboxes' , و قد شارفت على الانتهاء منه, و لا أريد أن أضع EventHandler لكل عنصر Textbox "سيأخذ من وقتي و جهدي الكثير الكثير! "

أفلا يوجد طريقة بتعديل خصائص الـTextbox نفسها "أقصد الكلاس نفسه" بحيث تصبح Default لبقية الـTextboxes'

#5

يمكن من خلال خصائص الــ TextBoxes الموجوده في المشروع ان تقوم بترتيب التنقل بالزر Tab وذلك من خلال الخاصية TabIndex

بحيث يكون TextBox1 Tab Index =1 والثاني 2 والثالث 3 وهكذا و من خلال ضبط هذه الخاصية تستطيع التنقل بين مربعات النصوص من خلال الزر Tab وبدون كتابة سطركود واحد

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#6
محمد فؤاد تركي كتب:

يمكن من خلال خصائص الــ TextBoxes الموجوده في المشروع ان تقوم بترتيب التنقل بالزر Tab وذلك من خلال الخاصية TabIndex

بحيث يكون TextBox1 Tab Index =1 والثاني 2 والثالث 3 وهكذا و من خلال ضبط هذه الخاصية تستطيع التنقل بين مربعات النصوص من خلال الزر Tab وبدون كتابة سطركود واحد

نعم أخي أعرف هذا الشيء

المشكلة تكمن أنني أريد SelectAll لكل الـtextboxes

في حال الضغط على Tab 

من دون أن أُعدل ذلك يدوياً

#7

ما الهدف من انك تريد عمل Select All لجميع TextBoxes عند الضغط علي زر Tab  ؟؟

 

اتوقع انك تريد عمل  Select ALL عليهم جميعا لتفريغهم دفعة واحده .... اذا كان توقعي صحيح

 

فيمكنك بدلا من ذلك ان نستخدم هذه الدالة لتفريغ مربعات النصوص جميعها دفعة واحدة

 

Public Sub ClearTextBox(ByVal root As Control)

 For Each ctrl As Control In root.Controls 
ClearTextBox(ctrl)

If TypeOf ctrl Is TextBox Then 
CType(ctrl, TextBox).Text = String.Empty

 End If 
Next ctrl 

End Sub

 

ثم نقوم باستدعاء الدالة هكذا

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ClearTextBox(Me)
End Sub

أتمني ان يكون هذا هو المطلوب

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 5 أبريل 2013 في 21:45

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#8

ممكن توضح ما الهدف من هذه الفكره لانها يمكن ان تمسح بيانات بالخطء وتكون مهمة

#9
محمد فؤاد تركي كتب:

TextBox2

 

 

مثال

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox2.Text = "123456"
    End Sub


    Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            TextBox2.Focus()
            TextBox2.SelectAll()
        End If
    End Sub

 

يا اخواني, كل ما أريده هو مثل هذا الكود, و لكن دون أن أقوم بذلك يدوياً لكل TextBox , بل أن يكون ذلك لكل الـTextBoxes بالتعديل على كلاس TextBox أو بطريقة ما أُخرى

 

مثلما مثلاً عندما أُحدد في الـDesign مجموعة من الـTextbox و أعدل الـproperties  , فيصبح التعديل لكل الـTextBox , كخاصية الـvisible مثلاً !

#10

بالطريقة الي تفكر فيها ما اظن تقدر تعمل واحد الا من علي اليوسر كونترول تعمل لك تكست بوكس جاهز عنده هذا الفينكشن جاهز فيه 

 

بس دا حيعني انك لازم تعيد برمجة الكثير من الاكواد لانك قلت انوا عندك اكثر من 100 تكست بوكس

 

افضل حل لك الحين هو انك تشتغلها يدوي وهذا اعتقادي فقط ربما يكون في المنتدى شخص عنده حل

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…