PDA

View Full Version : array control in VB.net



archi
جمعه 21 آذر 1382, 19:21 عصر
کسی می دونه تو vb.net چه طور یه آرایه از کنترلها (مثلا button)درست کرد؟ تو vb6همین که کپی -پیست می کردیم خودش درست می کرد ولی تو دات نت نه !

جمعه 21 آذر 1382, 20:01 عصر
در VB.Net دیگه شما نمی تونین آرایه کنترلی بصورتی که در VB داشتین، داشته باشین.
اگر می خواهین یک event برای چند کنترل عمل کند، باید در قسمت Handels تعریف زیر برنامه نام کنترل ها را یکی یکی اضافه کنین.

marandi
سه شنبه 09 دی 1382, 01:35 صبح
سلام
اگه کنترل هات به صورت Offline تعریف شوند. همانطور که دوست عزیزمون گفت از Handles استفاده می کنیم. به مثال زیر توجه کن :



Private Sub myArrayControlClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
'get control with sender parameter
Dim myControl As Button = DirectCast(sender, Button)
MessageBox.Show(myControl.Name)
End Sub


ولی اگه کنترل هات رو بخوای به صورت Online ایجاد کنی باید با استفاده از AddHandler آدرس دهی کنی. روال به صورت زیر است :



Private Sub myForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim myCounter As Byte, UpBound As Integer, tempButton As Button
For myCounter = 1 To 5
tempButton = New Button()
tempButton.Name = "customControl" & myCounter
tempButton.Location = New Point((myCounter * tempButton.Width) + 10, 20)
Me.Controls.Add(tempButton)
AddHandler tempButton.Click, AddressOf myControlsClick
Next
End Sub

Private Sub myControlsClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim currentBotton As Button = DirectCast(sender, Button)
MessageBox.Show(currentBotton.Name)
End Sub

khadem1386
دوشنبه 16 دی 1387, 11:45 صبح
ولی در کل قبول دارید اون روش vb6 بیشتر به دل می نشست؟

برداشتن ایندکس ها چه نفعی برای .net داره ؟ خوششون میان مردم را اذیت کنند؟

سوال : فاوید روش جدید کنترل array را در .net با vb6 مقایسه کنید؟

تشکر

rooshan2008
دوشنبه 16 دی 1387, 21:32 عصر
سلام
دوست عزیز نمی دونم شما به یک ایندکس می گین برتری ؟؟ بی انصاف نباشید .....به هر حال این نظر شماست... ولی من با این روش بیشتر حال میکنم بعضی وقتا اصلاً فرم نمی سازم فقد کدش رو مینویسم فرم رو تو حالت اجرا با تمام جزییاتش ایجاد می کنم زبان به این شی گرایی کجا دیدی .
هم وسیله توسعه ابزار ها هم وراثت و خیلی چیزای دیگه رو کاملاً پشتیبانی میکنه...فوق العادست

MIDOSE
دوشنبه 05 تیر 1391, 23:43 عصر
سلام
دوست عزیز نمی دونم شما به یک ایندکس می گین برتری ؟؟ بی انصاف نباشید .....به هر حال این نظر شماست... ولی من با این روش بیشتر حال میکنم بعضی وقتا اصلاً فرم نمی سازم فقد کدش رو مینویسم فرم رو تو حالت اجرا با تمام جزییاتش ایجاد می کنم زبان به این شی گرایی کجا دیدی .
هم وسیله توسعه ابزار ها هم وراثت و خیلی چیزای دیگه رو کاملاً پشتیبانی میکنه...فوق العادست

دوست عزیز شی گرایی را با مسئله کد نویسی اشتباه نگیرید. به اطمینان سیاست مایکروسافت استفاده آسان و بهینه از منابع و اشیا و ... می باشد.

MIDOSE
سه شنبه 06 تیر 1391, 00:15 صبح
کسی می دونه تو vb.net چه طور یه آرایه از کنترلها (مثلا button)درست کرد؟ تو vb6همین که کپی -پیست می کردیم خودش درست می کرد ولی تو دات نت نه !

با سلام
روش ساده استفاده از لیست است. اگر می خواهید به صورت آرایه به ویژگی اشیایی که مدنظرتون هست دسترسی داشته باشید کافیست از لیست استفاده کنید. ابتدا یک لیست تعریف کرده و نوع آن را مشخص کنید. سپس اشیا مورد نظر را به آن اضافه کرده و بعد از آن به صورت آرایه استفاده کنید.
موفق باشید


Dim t As New List(Of Label)
t.Add(Label1)
t.Add(Label2)
t.Add(Label3)
t.Add(Label4)
For i As Integer = 0 To 3
t(i).Text = i
Next