منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] طريقة مسح جزء من البيانات في TextBox - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : النقاش والأسئلة حول الإصدارات الأحدث من الفيجوال ستوديو (http://vb4arb.com/vb/forumdisplay.php?fid=155)
+--- الموضوع : [سؤال] طريقة مسح جزء من البيانات في TextBox (/showthread.php?tid=45127)



طريقة مسح جزء من البيانات في TextBox - danti - 24-01-23

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

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

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

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

https://www.mediafire.com/view/eiqcqvquxqvmkgr/22.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

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


RE: طريقة مسح جزء من البيانات في TextBox - Taha Okla - 24-01-23

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

لا تحتاج لعكس العملية ولكن استخدم هذا الكود وأكمله بما يناسب عملك ..
كود :
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



RE: طريقة مسح جزء من البيانات في TextBox - danti - 24-01-23

(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

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

سوف أنظر ما يمكن عمله.. ولي عودة


RE: طريقة مسح جزء من البيانات في TextBox - Taha Okla - 24-01-23

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




RE: طريقة مسح جزء من البيانات في TextBox - danti - 24-01-23

(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) :


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

جزاكم الله كل خير ونفع بعلمكم ورفع قدركم.


RE: طريقة مسح جزء من البيانات في TextBox - سعود - 24-01-23

احببت مشاركتكم بهذا الكود القديم.
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 



RE: طريقة مسح جزء من البيانات في TextBox - danti - 25-01-23

(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أكثر ملائمة.. حيث أنه لا تظهر علامة ( + ) في نهاية السطر..

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


RE: طريقة مسح جزء من البيانات في TextBox - سعود - 25-01-23

(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أكثر ملائمة.. حيث أنه لا تظهر علامة ( + ) في نهاية السطر..

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

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