ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
بسیار ساده ولی پر دردسر
Btn0 Bt t1
Btn1 Btnt2
Btn2 Btnt3
Btnt4
طبق نام های بالا کنترل هایی از نوع باتن در فرم ساخته شده در کنار هم و زیر هم دقیقا مثل موارد فوق الذکر، تابعی نوشته شد که در زمان اتفاق افتادن رویدادکلیک باتنی از باتن های سمت چپ کل باتن های سمت راست به زیر آن انتقال یابد .
Function Btn(Bt As Control3) As Doble
For i=1 to 4
Controls("Btnt" & i).Left=Bt.Left+300
موقعیت پراپرتی TOP هر یک از کنترل های سمت راست میشود ( فرضا Btnt1 میشود Btn0.Top به اضافه ی عرضش و Btnt2 میشود Btn0.Top + Btn.Height +Btnt2.Height
Controls("Btnt" & i).Top=Bt.Top+Bt.Height+(i-1)*Controls("Btnt" & i).Height
(Btn=Controls("Btnt4".Top
Next
یا بصورت زیر
Function Btn(Bt As Control) As Double
b = Bt.Top
For i = 1 To 4
Controls("Btnt" & i).Left = Btn0.Left+300
Controls("Btnt" & i).Top = b + Controls("Btnt" & i).Height * i
Btn = Controls("Btnt" & i).Top
Next
End Function
چنانچه هر یک Toppadding خودش را داشته باشه فرضا بین باتن های سمت راست هر کدام فواصل متغیری باشد باید آنها را هم در نظر بگیرید ولی معمولا باتن ها را بهم بچسبانید تا نیاز به کد نویسی اضافه تری نباشد.
در رویداد کلیک Btn0 میتوان نوشت که اولا Btnt ها زیر آن بیاید و Btn1 و Btn2 در زیر Btnt ها قرار گیرد
()Private Sub Btn0_Click
Btn1.Top = Btn(Btn0) + Btnt4.Height
Btn2.Top = Btn1.Top + Btn1.Height
End Sub
()Private Sub Btn1_Click
Btn1.Top=Btn0.Top+Btn0.Height
(Btn2.Top=Btn(Btn1
End Sub
()Private Sub Btn2_Click
Btn1.Top = Btn0.Top + Btn0.Height
Btn2.Top=Btn1.Top+Btn0.Height
(Call Btn(Btn2
End Sub
تست شده طبق فایل GIF زیر ، نام ها در کپشن باتن ها نوشته شد تا گیج کننده نباشد.