26-11-20, 02:50 AM
استأذن الاخوة قبلي يمكن عمل ذلك باستخدام بعض الحيل في التصميم دون الحاجة للكود الى في قليل القليل
اضفت TableLayoutPanel بها صفان وجعلت ارتفاعهما AutoSize واضفت في الصف الاول البانل الخاص باللون والصف الثاني الليبل الخاص بالجملة ، وجعلت كل منهما له الخاصية Anchor = None وبالتالي نضمن انهما سيظلا في المنتصف دائما
وهنا حللنا مشكلة المكان تماما دون كتابة الكود
الان في الكود من اجل المرونة جعلت عرض البانل نسبة من عرض الاداه الحاوية له ، حتى يصلح لاي ابعاد تختارها ، وبالطبع بعد ان ينتهي الحركة نقوم بجعل Dock=Fill ليملأ البانل المكان
الان لاحظو كيف اصبح الكود ابسط واقل حجما :
هذا هو سحر التصميم هناك الكثير يمكن عمله دون كتابة سطر واحد من الكود
اضفت TableLayoutPanel بها صفان وجعلت ارتفاعهما AutoSize واضفت في الصف الاول البانل الخاص باللون والصف الثاني الليبل الخاص بالجملة ، وجعلت كل منهما له الخاصية Anchor = None وبالتالي نضمن انهما سيظلا في المنتصف دائما
وهنا حللنا مشكلة المكان تماما دون كتابة الكود
الان في الكود من اجل المرونة جعلت عرض البانل نسبة من عرض الاداه الحاوية له ، حتى يصلح لاي ابعاد تختارها ، وبالطبع بعد ان ينتهي الحركة نقوم بجعل Dock=Fill ليملأ البانل المكان
الان لاحظو كيف اصبح الكود ابسط واقل حجما :
كود :
Public Class Form1
Dim panelStep As Integer
Const PANELMAX As Integer = 20
Dim labelText As String = "الدفتر الجديد يرحب بكم في نسخته الجديدة والمطورة"
Dim TextStep As Integer
' خاص بالبانل
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles tmrPanel.Tick
If panelStep = PANELMAX Then
pnlColor.Dock = DockStyle.Fill
tmrPanel.Stop()
tmrText.Start()
Return
End If
panelStep += 1
pnlColor.Width = pnlColor.Parent.Width * panelStep / PANELMAX
End Sub
' حاص بالنص
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles tmrText.Tick
If TextStep = labelText.Length Then
tmrText.Stop()
Return
End If
TextStep += 1
lblText.Text = labelText.Substring(0, TextStep)
End Sub
End Classهذا هو سحر التصميم هناك الكثير يمكن عمله دون كتابة سطر واحد من الكود

