شاطر
اذهب الى الأسفل
Admin
عدد المساهمات : 6
تاريخ التسجيل : 08/10/2012
معاينة صفحة البيانات الشخصي للعضوhttp://arbtech.forumegypt.net

كيف تجعل كل شئ مستديرا داخل الفورم

في الثلاثاء أكتوبر 09, 2012 8:33 am
ن متابعتي للموقع وجدت ان الكثير من الاخوه يريدون أن يغيرون شكل الباتون ليكون دائريا
الحقيقه نستطيع تغيير الكثير من الكونترول Controls ونجعلها علي شكل دائره وذلك مع الحفاظ علي الخواص الاخري وبدون استخدام اكواد تم تصميمها بواسطة مبرمجين اخرين
عموما كل هذا يتم باستخدام +GDI
كل ذلك يتم عن طريق الحدث Paint او Overrides Paint

مثال : تغيير شكل الفورم الي دائره
كل ما عليك فعله هو ان تجعل الفورم له ابعاد متساويه
وتستخدم الكود الاتي

الكود:

Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

        Dim shape As New System.Drawing.Drawing2D.GraphicsPath
        shape.AddEllipse(0, 0, Me.Width, Me.Height)
        Me.Region = New System.Drawing.Region(shape)
End Sub
مثال اخر: تغيير شكل الباتون Button
ايضا نجعل الباتون size متساوي اي نغيير في Properties وتحديدا في Size ونجعل القيميتن متساويتين عمومل لو لم نجعل القيميتين متساويتين سنحصل علي شكل بيضاوي
وهذا الامر ينطبقي علي الفورم وباق الاشياء الاخري
الكود:

  Private Sub Button1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Button1.Paint

        Dim shape As New System.Drawing.Drawing2D.GraphicsPath
        shape.AddEllipse(0, 0, Button1.Width, Button1.Height)
        Button1.Region = New System.Drawing.Region(shape)

    End Sub
مثال اخر: تغيير شكل Panel

الكود:

Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint

        Dim shape As New System.Drawing.Drawing2D.GraphicsPath
        shape.AddEllipse(0, 0, Panel1.Width, Panel1.Height)
        Panel1.Region = New System.Drawing.Region(shape)

    End Sub
مثال اخر : PictureBox

الكود:

 Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint

        Dim shape As New System.Drawing.Drawing2D.GraphicsPath
        shape.AddEllipse(0, 0, PictureBox1.Width, PictureBox1.Height)
        PictureBox1.Region = New System.Drawing.Region(shape)

    End Sub
مثال اخر : حتي DataGridView

الكود:

Private Sub DataGridView1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles DataGridView1.Paint

        Dim shape As New System.Drawing.Drawing2D.GraphicsPath
        shape.AddEllipse(0, 0, DataGridView1.Width, DataGridView1.Height)
        DataGridView1.Region = New System.Drawing.Region(shape)

    End Sub
lمثال اخر: حتي SplitContainer

الكود:

Private Sub SplitContainer1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles SplitContainer1.Paint

        Dim shape As New System.Drawing.Drawing2D.GraphicsPath
        shape.AddEllipse(0, 0, SplitContainer1.Width, SplitContainer1.Height)
        SplitContainer1.Region = New System.Drawing.Region(shape)

    End Sub
عموما الاسلوب ده يمكن استخدامه لتغيير اشياء كثيره ..........حاول تجرب بنفسك .......... الامر اسهل مما تتصور اي كونترول يمتلك الحدث Paint يمكن استخدام الكود معه منقول للفائدة..................
الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى