السلام عليكم ورحمة الله وبركاته..
ممكن لو سمحتم ازاى اخلى الليست بوكس تتجهه نحو اليمين بمجرد الضغط على الزر
وحين الضغط مرة أخرى عليه ترجع كما كانت فى مكانها مثل الدبوس auto hide الموجود هنا وجزاكم الله كل الخير.
هذه محاولاتى لكنه يختفى وأنا أريد يعمل كإزاحة فقط وطبعا وضعت الليست بوكس داخل Panel
كود :
If Panel1.Visible = True Then
Panel1.Visible = False
Exit Sub
End If
If Panel1.Visible = False Then
Panel1.Visible = True
Exit Sub
End If
السلام عليك ورحمة الله اخي ابو روضه
اولا ضع اداة 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
ارجو ان يكون الكود واضح وان يكون هو ما اردت
(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
ارجو ان يكون الكود واضح وان يكون هو ما اردت
بارك الله فيكم أخوتى الكرام وجزاكم كل الخير...
هذا ما أريده بالتحديد الله يسعدكم......
أتمنى ان يكون هذا الكود ذو فائدة وبسوالك هذا وجدت فكره اضيفها الى فاتورة المبيعات فانا مجرد مبتدي وانتم الاساتذه اتمنى التحقق من الكود وافادتي اذا يوجد به اخطاء ولكم منيجزيل الشكر والتقدير
(02-07-20, 07:17 AM)alshandodi كتب : [ -> ]أتمنى ان يكون هذا الكود ذو فائدة وبسوالك هذا وجدت فكره اضيفها الى فاتورة المبيعات فانا مجرد مبتدي وانتم الاساتذه اتمنى التحقق من الكود وافادتي اذا يوجد به اخطاء ولكم منيجزيل الشكر والتقدير
مثال جميل جدا أخى بارك الله فيك