(02-07-20, 01:00 AM)سامي محمد كتب : أعملها بــ Timer
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Timer1.Start()
End Sub
Dim i As Single
Dim O As Boolean
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If O = False Then
Panel1.Left += i
i += 0.1
If i >= 5.5 Then Timer1.Stop() : O = True : Button1.Text = "<"
Else
i -= 0.1
Panel1.Left -= i
If i <= 0 Then Timer1.Stop() : O = False : Button1.Text = ">"
End If
End Sub
(02-07-20, 01:06 AM)معاند الحظ كتب : السلام عليك ورحمة الله اخي ابو روضه
اولا ضع اداة CheckBox داخل الفورم واجعلها غير مؤشرة
ثانيا في وقت التصميم قم بموضعة الاداة ListBox بحيث يكون الجانب الايمن لها ملاصق للجانب الايمن للفورم
ثالثا قم بتحجيم الاداة ListBox الى الحجم الاصغر لها
ثم انسخ الكود التالي:
كود :
Dim DefaultWidth As Integer
Dim LongWidth As Integer = 300
Dim Defaultleft As Integer
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
DefaultWidth = ListBox1.Width
Defaultleft = ListBox1.Left
End Sub
Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
ListBox1.Width = LongWidth
ListBox1.Left = Me.Width - ListBox1.Width
Else
ListBox1.Width = DefaultWidth
ListBox1.Left = Defaultleft
End If
End Sub
لاحظ انه عند تشغيل البرنامج ثم التأشير داخل التشيك بوكس تصبح قيمة الخاصية ListBox.Width= 300 وهي القيمة العضمى والتي حددتها في الكود ضمن المتغير LongWidth
ولكي يبقى الـ ListBox في مكانه اي بمحاذاة الجانب الايمن فانا نعيد تموضع الـ ListBox.Left بحيث تساوي عرض الفورم ناقص عرض الـ ListBox
اما في حالة ازالة التاشير فتعود الخاصية ListBox.Width= DefaultWidth وانا اعطيتها القيمة 79 ويعود تموضع الـ ListBox.Left ليساوي القيمة المحفوظة في المتغير Defaultleft
ارجو ان يكون الكود واضح وان يكون هو ما اردت
بارك الله فيكم أخوتى الكرام وجزاكم كل الخير...
هذا ما أريده بالتحديد الله يسعدكم......

