منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : طريقة مسح جزء من البيانات في TextBox
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله

أرجو أن يكون الجميع بصحة جيدة..

كما أرجو أن أجد إجابة على سؤالي..

يوجد لدي مجموعة من CheckBox بحيث إذا وضعت علامة على أحدها يظهر اسم مربع الاختيار في مربع نص متبوع بعلامة ( + ) كما في الصورة..

https://www.mediafire.com/view/eiqcqvqux...2.jpg/file

السؤال.. ما هو الكود الذي استخدمه لعكس العملية، بحيث لو أزلت العلامة من مربع معين يمسح فقط نفس اسم مربع الاختيار من مريع النص؟

استخدم هذا الكود لإظهار اسم مربع الاختيار:

كود :
Private Sub CH_Jad_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Jad.CheckedChanged
       If CH_Jad.Checked = True Then
           Txt_Pat_Esc.Text += CH_Jad.Text & " + "
       Else

       End If
   End Sub

   Private Sub CH_Jada_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Jada.CheckedChanged
       If CH_Jada.Checked = True Then
           Txt_Pat_Esc.Text += CH_Jada.Text & " + "
       Else

       End If
   End Sub

   Private Sub CH_Ak_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Ak.CheckedChanged
       If CH_Ak.Checked = True Then
           Txt_Pat_Esc.Text += CH_Ak.Text & " + "
       Else

       End If
   End Sub

وشكراً جزيلاً...
وعليكم السلام ورحمة الله وبركاته

لا تحتاج لعكس العملية ولكن استخدم هذا الكود وأكمله بما يناسب عملك ..
كود :
Sub IsChecked()
   Dim strT As String

   If CH_Jad.Checked Then strT &= CH_Jad.Text + " + "
   If CH_Jada.Checked Then strT &= CH_Jada.Text + " + "
   If CH_Ak.Checked Then strT &= CH_Ak.Text + " + "
   '....
   '....
   '....
   '...
   '..
   '.

   Txt_Pat_Esc.Text = Strings.Left(strT, Len(strT) - 3)
End Sub

Private Sub CH_Jad_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Jad.CheckedChanged
   IsChecked()
End Sub

Private Sub CH_Jada_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Jada.CheckedChanged
   IsChecked()
End Sub

Private Sub CH_Ak_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Ak.CheckedChanged
   IsChecked()
End Sub
(24-01-23, 10:10 AM)Taha Okla كتب : [ -> ]وعليكم السلام ورحمة الله وبركاته

لا تحتاج لعكس العملية ولكن استخدم هذا الكود وأكمله بما يناسب عملك ..
كود :
Sub IsChecked()
   Dim strT As String

   If CH_Jad.Checked Then strT &= CH_Jad.Text + " + "
   If CH_Jada.Checked Then strT &= CH_Jada.Text + " + "
   If CH_Ak.Checked Then strT &= CH_Ak.Text + " + "
   '....
   '....
   '....
   '...
   '..
   '.

   Txt_Pat_Esc.Text = Strings.Left(strT, Len(strT) - 3)
End Sub

Private Sub CH_Jad_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Jad.CheckedChanged
   IsChecked()
End Sub

Private Sub CH_Jada_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Jada.CheckedChanged
   IsChecked()
End Sub

Private Sub CH_Ak_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Ak.CheckedChanged
   IsChecked()
End Sub

شكراً جزيلاً..

سوف أنظر ما يمكن عمله.. ولي عودة
وهذه طريقة مميزة - مقدمة من الأخ والمعلم الأول (OLED) :

(24-01-23, 10:10 AM)Taha Okla كتب : [ -> ]وعليكم السلام ورحمة الله وبركاته

لا تحتاج لعكس العملية ولكن استخدم هذا الكود وأكمله بما يناسب عملك ..
كود :
Sub IsChecked()
   Dim strT As String

   If CH_Jad.Checked Then strT &= CH_Jad.Text + " + "
   If CH_Jada.Checked Then strT &= CH_Jada.Text + " + "
   If CH_Ak.Checked Then strT &= CH_Ak.Text + " + "
   '....
   '....
   '....
   '...
   '..
   '.

   Txt_Pat_Esc.Text = Strings.Left(strT, Len(strT) - 3)
End Sub

Private Sub CH_Jad_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Jad.CheckedChanged
   IsChecked()
End Sub

Private Sub CH_Jada_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Jada.CheckedChanged
   IsChecked()
End Sub

Private Sub CH_Ak_CheckedChanged(sender As Object, e As EventArgs) Handles CH_Ak.CheckedChanged
   IsChecked()
End Sub

هذه الطريقة ممتازة.. حتى أنها تقوم بترتيب الأسماء..

ولكن يظهر خطأ عندما أقوم بإزالة كل علامات الاختيار كي يصبح مربع النص فارغ..

كما في الصورة:

333.jpg - MediaFire

(24-01-23, 06:17 PM)Taha Okla كتب : [ -> ]وهذه طريقة مميزة - مقدمة من الأخ والمعلم الأول (OLED) :


طريقة ممتازة جداً.. نفس فكرتك في ردك السابق..
ولكن هذه  الطريقة حتى لو أزلت كل علامات الاختيار كلي يصبح مربع النص فارغ ولا يظهر أي خطأ.

جزاكم الله كل خير ونفع بعلمكم ورفع قدركم.
احببت مشاركتكم بهذا الكود القديم.
PHP كود :
 Private Sub chk(ByRef c As CheckBox)
 
       If c.Checked True Then
            If TextBox1
.Text.Contains(c.Text " + ") = False Then
                TextBox1
.AppendText(c.Text " + ")
 
           End If
 
       ElseIf c.Checked False Then
            If TextBox1
.Text.Contains(c.Text " + ") = True Then
                TextBox1
.Text TextBox1.Text.Replace(c.Text " + "String.Empty)
 
           End If
 
       End If
 
   End Sub
    Private Sub CheckBox1_CheckedChanged
(sender As System.ObjectAs System.EventArgsHandles CheckBox4.CheckedChangedCheckBox3.CheckedChangedCheckBox2.CheckedChangedCheckBox1.CheckedChanged
        chk
(sender)
 
   End Sub 
(24-01-23, 10:56 PM)سعود كتب : [ -> ]احببت مشاركتكم بهذا الكود القديم.
PHP كود :
 Private Sub chk(ByRef c As CheckBox)
 
       If c.Checked True Then
            If TextBox1
.Text.Contains(c.Text " + ") = False Then
                TextBox1
.AppendText(c.Text " + ")
 
           End If
 
       ElseIf c.Checked False Then
            If TextBox1
.Text.Contains(c.Text " + ") = True Then
                TextBox1
.Text TextBox1.Text.Replace(c.Text " + "String.Empty)
 
           End If
 
       End If
 
   End Sub
    Private Sub CheckBox1_CheckedChanged
(sender As System.ObjectAs System.EventArgsHandles CheckBox4.CheckedChangedCheckBox3.CheckedChangedCheckBox2.CheckedChangedCheckBox1.CheckedChanged
        chk
(sender)
 
   End Sub 

فعلاً الكود يعمل وبشكل ممتاز..

لكن لاحظت أن طريقة الأخ (OLEDأكثر ملائمة.. حيث أنه لا تظهر علامة ( + ) في نهاية السطر..

شكراً جزيلاً لك.. وجزاك الله خيراً على المشاركة المفيدة.
(25-01-23, 02:58 AM)danti كتب : [ -> ]
(24-01-23, 10:56 PM)سعود كتب : [ -> ]احببت مشاركتكم بهذا الكود القديم.
PHP كود :
 Private Sub chk(ByRef c As CheckBox)
 
       If c.Checked True Then
            If TextBox1
.Text.Contains(c.Text " + ") = False Then
                TextBox1
.AppendText(c.Text " + ")
 
           End If
 
       ElseIf c.Checked False Then
            If TextBox1
.Text.Contains(c.Text " + ") = True Then
                TextBox1
.Text TextBox1.Text.Replace(c.Text " + "String.Empty)
 
           End If
 
       End If
 
   End Sub
    Private Sub CheckBox1_CheckedChanged
(sender As System.ObjectAs System.EventArgsHandles CheckBox4.CheckedChangedCheckBox3.CheckedChangedCheckBox2.CheckedChangedCheckBox1.CheckedChanged
        chk
(sender)
 
   End Sub 

فعلاً الكود يعمل وبشكل ممتاز..

لكن لاحظت أن طريقة الأخ (OLEDأكثر ملائمة.. حيث أنه لا تظهر علامة ( + ) في نهاية السطر..

شكراً جزيلاً لك.. وجزاك الله خيراً على المشاركة المفيدة.

العفو اخي الكريم مشكلة الرمز حلها بسيط باضافة تحقق.