منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة (/showthread.php?tid=31031)



تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - سميـر - 23-08-19

السلام عليكم

من اجل الاستعداد في تنفيذ اجزاء اخرى من المشروع الاساسي
تم تكليفي بعمل كود يقوم بالتالي:
توجد أداة GroupBox وفيها مجموعة أدوات
المطلوب تعطيل كل الأدوات التي بداخلها باستثناء تكست بوكس معين مع الليبل الخاص بها

قمت بعمل مشروع تجربه ولكن لم اتمكن من عملها بالشكل الصحيح

مشروع التجربة:
لدي GroupBox1 وفيه مجموعة من الأدوات وهي
Label1 مع TextBox1
Label2 مع TextBox2
Label3 مع TextBox3
Button1 لتعطيل كل الأدوات داخل GroupBox1 باستثناء Label2 وTextBox2 على سبيل المثال
Button2 لتفعيل كل الأدوات داخل GroupBox1

عند عمل الكود اتضح انه يعطل كل شيء حتى الفورم
صراحة اصابني بالارتباك وسأحرج من زملائي لو طلبوا مني وضع الكود قبل حل مشكلته

هذا هود الكود
كود :
Public Class Form1

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      DisableGroupBox
   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
      EnableGroupBox
   End Sub

   Private Sub DisableGroupBox()
       For Each c As Control In GroupBox1.Controls
           If c IsNot TextBox2 And c IsNot Label2 Then
               Enabled = False
           End If
       Next
   End Sub

   Private Sub EnableGroupBox()
       For Each c As Control In GroupBox1.Controls
           Enabled = True
       Next
   End Sub

End Class


وشكرا لكم


RE: تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - سميـر - 23-08-19

أرجو أن لا يكون رفعي للموضوع مخالفة


RE: تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - baha - 23-08-19

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

كل ماعليك هو إضافة حرف c قبل الخاصية ليتم تحديد أي كائن تريد تعطيله

كود :
 c.Enabled = False
           


RE: تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - ابراهيم ايبو - 23-08-19

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

هل تريد تعطيل يعني تصبح ReadOnly او Enable=false ام انك تريد تدمير العناصر? 
تدمير العناصر لايمكن اعادتها الا باعادة التشغيل او بكود جديد لانشائها 
اما Enable=false فيمكن تغيير قيمتها الى true وبالنسبة ل label 
فهي لاتحتاج الى تعظيل وتفعيل ارجو الايضاح ليصار الى كتابة الكود المناسب



RE: تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - سميـر - 23-08-19

أشكرك صديقي baha

لقد لفت نظري لنقص في الكود وهو عدم وجود .c قبل كلمة Enabled
فعند إضافتها عمل الكود بالشكل المطلوب

أشكرك جزيل الشكر

الكود بعد التعديل
كود :
Public Class Form1

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     DisableGroupBox
  End Sub

  Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
     EnableGroupBox
  End Sub

  Private Sub DisableGroupBox()
      For Each c As Control In GroupBox1.Controls
          If c IsNot TextBox2 And c IsNot Label2 Then
              c.Enabled = False
          End If
      Next
  End Sub

  Private Sub EnableGroupBox()
      For Each c As Control In GroupBox1.Controls
          c.Enabled = True
      Next
  End Sub

End Class



أشكرك صديقي ابراهيم ايبو
كان الطلب في التفعيل Enabled فقط وتم عمل المطلوب بإضافة .c قبل كلمة Enabeld في الكود

أشكرك جزيل الشكر على المتابعة المعهودة منك


RE: تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - baha - 23-08-19

(23-08-19, 05:57 PM)ابراهيم ايبو كتب :
السلام عليكم ورحمة الله وبركاته

هل تريد تعطيل يعني تصبح ReadOnly او Enable=false ام انك تريد تدمير العناصر? 
تدمير العناصر لايمكن اعادتها الا باعادة التشغيل او بكود جديد لانشائها 
اما Enable=false فيمكن تغيير قيمتها الى true وبالنسبة ل label 
فهي لاتحتاج الى تعظيل وتفعيل ارجو الايضاح ليصار الى كتابة الكود المناسب

هل يمكن تدمير أي كائن كمربع النص مثلاً؟
أي استخدام نفس الإسم بعد التدمير لكائن آخر


RE: تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - ابراهيم ايبو - 23-08-19

السلام عليكم اخي baha
نعم يمكن تدمير أي عنصر ثم انشاء عنصر جديد يحمل نفس الاسم ولكن يفضل اسم أخر
اليك الاكواد الاول تدمير والثاني انشاء طبعا بالنسبة للقياس والتموضع ضع نفس القيم للعنصر المدمر استبدل ماكتبته من تموضع 

كود :
' تدمير عنصر
   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
     
       TextBox1.Dispose()
   End Sub
   ' انشاء عنصر
   Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
   
       Dim tex As New TextBox()

       GroupBox1.Controls.Add(tex)
       tex.Name = "TextBox1"
       tex.Text = "hello"
       tex.Location = New Point(100, 40)
   End Sub



RE: تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - baha - 23-08-19

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

مشكور أخي  [b]ابراهيم ايبو[/b] على هذه المعلومة







تمنياتي لك وللجميع التوفيق



RE: تعطيل جميع الأدوات داخل GroupBox باستثناء واحدة - ابراهيم ايبو - 23-08-19

الحمد لله والشكر لله 
ولكما اخوي Baha وسمير