PDA

View Full Version : آرایه ای از شئ ها مثل button



ali_autumnal
دوشنبه 17 فروردین 1388, 22:52 عصر
سلام؛
42 تا .Button دارم میخوام مثله یه آرایه مقدار دهی کنم. برای این کار این دستور رو نوشتم:


Dim button(42) As System.Windows.Forms.Button


و در زمان اجرا میخوام به این شکل مقدار دهی کنم:


For i = 1 To aday
button(i).Text = daysh + j
j = j + 1
Next

اما در لاین 2 دستور for خطا میگیره.
از طرفی در ویبی دات نت نمیزاره button ها رو مثل ویبی آرایه درست کرد. (یعنی همنام باشن و از ایندکس این باتون ها بهشون دسترسی پیدا کنم) واسه این کار چیکار باید بکنم؟
در حالت کلی: میخوام 42 تا button رو آرایه درست کنم. چیکار باید بکنم؟


یه سوال دیگه هم دارم:
در دستور :


Dim x As New System.Globalization.PersianCalendar
Dim dt As Date = x.ToDateTime(year, month, day, 0, 0, 0, 0, 0)


وقتی بجای مقادیر از متغیر های month و day استفاده میکنم خطا میده. چطور میتونم تو این دستور از متغیر استفاده کنم.
ببینید: بفرض کاربر مقدار 1388/1/17 رو وارد کرده . من میخوام عدد 17 در متغیر day و عدد 1 در متغیر month قرار بگیره. اما طبق این دستوری که نوشتم خطا میده. میگه نمیشه متغیر گذاشت باید عدد باشه. البته متغیر سال رو خطا نمیگیره. یعنی تو قسمت سال هم میشه متغیر گذاشت و هم میشه یه عدد گذاشت.

از دوستانی که حوصله می کنن و پاسخ میدن بی نهایت سپاسگزارم

Miss Mary
سه شنبه 18 فروردین 1388, 10:55 صبح
با سلام
شما نمی توانید از اشیاء موجود به این شکل استفاده کنید. اگر میخواهید مانند آرایه مقدار دهی کنید باید در زمان اجرا، اشیاء مورد نظر را بسازید. برای این کار میتوانید از کد زیر کمک بگیرید. این کد آرایه ای از Buttonها را در 5 سطر و 5 ستون ایجاد میکند. شما میتوانید در زمان اجرا به هر شکلی که میخواهید Buttonهای ایجاد شده را مقدار دهی کنید.


Dim btn(25) As Button
Dim i, x, y AsInteger
x = 20
y = 20
For i = 1 To 25
btn(i) = New Button
btn(i).Text = "daysh" & i
btn(i).Location = New Point(x, y)
btn(i).Size = New Point(60, 25)
Controls.Add(btn(i))
x += 70
If i Mod 5 = 0 Then
x = 20
y += 50
EndIf
Next

mfasihy
یک شنبه 30 فروردین 1388, 08:17 صبح
با سلام
در این حالت در صورتی که بخواهیم رویدادهای هرکدام از button ها را مدیریت کنیم چکار باید بکنیم؟

anooshiran
دوشنبه 31 فروردین 1388, 01:11 صبح
با سلام

با اجازه دوست عزيز Miss Marry من دستي در كد ايشان بردم تا مشكل شما در ارتباط با رويدادها هم حل شود .

البته من فقط از رويداد click استفاده كردم. شما مي توانيد به همين ترتيب براي تمام رويدادهاي مورد نظرتان كدتويسي كنيد.



Dim btn(25) As Button
Dim i, x, y As Integer
x = 20
y = 20
For i = 1 To 25
btn(i) = New Button
btn(i).Name = "btn_" + CStr(i)
btn(i).Text = "daysh" & i
btn(i).Location = New Point(x, y)
btn(i).Size = New Point(60, 25)
AddHandler btn(i).Click, AddressOf btn_Click
Controls.Add(btn(i))
x += 70
If i Mod 5 = 0 Then
x = 20
y += 50
End If
Next






Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox(sender.Text, , sender.name)
End Sub