View Full Version : تشخیص اشیا ساخته شده در آرایه ای از کنترل ؟
habedijoo
یک شنبه 16 مرداد 1384, 10:22 صبح
با سلام به همه
من یک آرایه از یک نوع کنترل ایجاد کرده ام . Dim A (10) as Label
سپس هر جا که لازم بوده و به تعداد دلخواهم کنترلها ی آرایه را ساخته ام a(0) = New Label
در پایان می خواهم کنترل هایی از آرایه را که ساخته ام به فرم اضافه کنم . از آنجا که بعضی از کنترلها را ایجاد نکرده ام به خطا بر می خورم .
با چه دستور شرطی می توانم خانه آرایه را چک کنم ببینم آیا کنترل را ایجاد کرده ام یا خیر .
( در ضمن نمی خواهم از Redim یعنی آرایه داینامیک استفاده کنم )
یاشار
یک شنبه 16 مرداد 1384, 13:23 عصر
از ArrayList چطور ؟ از این هم نمیخواهید استفاده کنید ؟ میتونید هر موقع که لازم شده بهش چند تا کنترل اضافه کنید و هر وقت هم خواستید از وسط مسطا حذف کنید.
اگر هم روی همین Array معمولی اصرار دارید فکر میکنم باید به این ترتیب عمل کنید.
if not a(i) is nothing then ...
habedijoo
یک شنبه 16 مرداد 1384, 17:10 عصر
سلام آقا یاشار
راستش تا حالا با ArrayList کار نکردم . اگر لینکی یا مثالی داری ممنون می شم ببینیم .
یاشار
یک شنبه 16 مرداد 1384, 20:50 عصر
مثال خاصی احتیاج نداره همه متدهاش سر راست و مشخص هستند. مثل یک Array اعضاش رو پشت سرهم ردیف میکنه و مثل یک List میشه از وسطش حذف کرد و یا به آخرش اضافه کرد.
تنها نکتهای که باید بهش توجه داشته باشید اینکه همه چیز رو به صورت object ذخیره میکنه و موقع بازیابی باید به صورتی که میخواهید ( اینجا Label ) تبدیلش کنید.
Dim aList As New ArrayList
Dim Lab1 As New Label
Dim Lab2 As New Label
Dim Lab3 As New Label
Dim Lab4 As New Label
'Add only two of the labels
aList.Add(Lab1)
aList.Add(Lab4)
'Later add only if not already present
If Not aList.Contains(Lab3) Then
aList.Add(Lab3)
End If
'retrieve later
For Each l As Label In aList
Me.Controls.Add(l)
'...
Next
'retrieve by the order
For i As Int32 = 0 To aList.Count - 1
Lab4 = CType(aList(i), Label)
Next
ArrayList (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionsarraylistclasstopic.asp)
habedijoo
دوشنبه 17 مرداد 1384, 10:15 صبح
ممنونم دوست عزیز
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.