منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
التحقق من وجود الاداة واتها لم تحذف - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : التحقق من وجود الاداة واتها لم تحذف (/showthread.php?tid=10149)



التحقق من وجود الاداة واتها لم تحذف - ali.alfoly - 20-08-13

السلام عليكم ورحمة الله وبركاته
اريد اتحقق ان ليبل1 مثلا مازال موجود على الفورم ام تم حذفه


التحقق من وجود الاداة واتها لم تحذف - 3booody - 20-08-13

كود :
For Each ctrl As Control In Me.Controls
            If ctrl.ToString.Contains("Label1") Then
                MsgBox("موجود")
                MsgBox(ctrl.ToString)
            End If
        Next

[COLOR="#000080"]وضعت لك MsgBox(ctrl.ToString) حتى تفهم مقصدي من الاسم
موفق
[/COLOR]


التحقق من وجود الاداة واتها لم تحذف - ali.alfoly - 20-08-13

جزاك الله خيرا
انا اقصد مثلا انا واضع تكرار فى فورم 1 وبعد الوصول الى عدد معين يام تغير نص على اداة موجودة على الفورم وفى حالة ادمير هذه الاداة او حذفها تظهر رسالة خطاء



التحقق من وجود الاداة واتها لم تحذف - 3booody - 20-08-13

كيف يعني ممكن توضح لي اكثر


التحقق من وجود الاداة واتها لم تحذف - MSDOS - 20-08-13

إذا كنت تقصد أن الأداة موضوعة في مصفوفة مثل موضوع آخر لك فإن حذف أي أداة من المصفوفة سوف ينقص العدد للمصفوفة وتعرف لك من خلال Length للمصفوفة

وإذا أضفت للإداة في المصفوفة في مثالك السابق في مشاركة أخرى اسم مثل lbl(i).Name= "Label" & i تستطيع التأكد من خلال اسمها بالطريقة التالية
كود :
If Me.Controls("Label999") Is Nothing Then
    MsgBox("الأداة غير موجودة")
End If

If Me.Controls("Label55") IsNot Nothing Then
    MsgBox("الأداة موجودة")
End If




' أو
If Me.Controls("Label55") IsNot Nothing Then
    MsgBox("الأداة موجودة")
Else
    MsgBox("الأداة غير موجودة")
End If



التحقق من وجود الاداة واتها لم تحذف - MSDOS - 20-08-13

احببت ان أضيف معلومة في مسألة إضافة الآدوات برمجياً وهي امكانية تشابه الأسماء،
في حين أن ذلك لا يمكن من خلال إضافة الأدوات من خلال التصميم
إليك مثال:
كود :
Dim lbl1 As New Label
Dim lbl2 As New Label

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    lbl1.[color=#FF0000]Name[/color] = "[color=#FF0000]Label1[/color]"
    lbl1.Text = "lbl1"
    lbl1.Location = New Point(150, 30)
    lbl1.ForeColor = Color.Blue
    Me.Controls.Add(lbl1)

    lbl2.[color=#FF0000]Name[/color] = "[color=#FF0000]Label1[/color]"
    lbl2.Text = "lbl2"
    lbl2.Location = New Point(150, 50)
    lbl2.ForeColor = Color.Green
    Me.Controls.Add(lbl2)
End Sub

المشكلة تواجهها عند التحكم بأداة مضافة برمجياً بواسطة الاسم وتوجد أداة أخرى بنفس الاسم،
فسيتم تطبيق التحكم في الأداة المضافة أولاً ابتداء من المضافة من خلال التصميم أولا فان لم يجدها فالمضافة برمجياُ (جرب إضافة أداة Label1 في التصميم ثم جرب بدونها)
إليك مثال:
كود :
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Me.Controls("[color=#FF0000]Label1[/color]").Location = New Point(150, 100)

End Sub



التحقق من وجود الاداة واتها لم تحذف - ali.alfoly - 20-08-13

اخوانى MSDOS
جزاكم الله خيرا وججعله فى موازين حسناتكم
استفدت اكثر مما كنت اريد
شكرا لتعاونكم معى
والله كل يوم ازداد حبل لكم ولاعضاء هذا المنتدى