PDA

View Full Version : سوال: تغییر خواص آرایه ای از ابزارها



pooya1072
چهارشنبه 28 دی 1390, 20:51 عصر
سلام
فرض کنید در یک UserForm تعداد 25 تکست باکس داریم که به صورت یک آرایه 5*5 چیده شده اند.می خواهیم بوسیله دو حلقه for به آنها مقدار دهی کنیم . کسی می تونه یک روش خوب برای این کار پیشنهاد کنه؟
نحوه ایجاد این تکست باکس ها به روش زیر بوده :

For i = 0 To 5
Txt(i) = New TextBox
Me.Controls.Add(Txt(i))
Txt(i).Location = New Point(20, i * 30)
Next

در نتیجه دسترسی به هر تکست باکس با اندکس آن امکان پذیر است.مثلاً txt(1).text

cherchil_hra
پنج شنبه 29 دی 1390, 08:12 صبح
اول این دو تا رو بعد از کلاس فرمت بذار که توی sub دسترسی داشته باشی

Dim len As Byte = 5
Dim txt(len * len) As TextBox

ساختن:

For row As Byte = 1 To len
For column As Byte = 1 To len
Dim index As Byte = ((row - 1) * len) + column
txt(index) = New TextBox
Me.Controls.Add(txt(index))
txt(index).Location = New Point(column * txt(index).Width, row * txt(index).Height)
Next column

Next row

مقدار دهی:

For row As Byte = 1 To len
For column As Byte = 1 To len
Dim index As Byte = (row * len) - (len - column)
txt(index).Text = index.ToString
Next column

Next row

این دوتا خط نتیجه اش یه چیزه:
(row * len) - (len - column)
((row - 1) * len) + column

تبدیل آرایه دوبعدی به تک بعدی، ساختمان داده ها