تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
غير شكل الفورم مع الــ gdi+
#1
كاتب الموضوع : jafaronly


السلام عليكم ورحمة الله
الاخوة الكرام اكيد تعودتم وربما سأمتم من شكل الفورم التلقيدي
حتى اذا استخدمت الــ skin لن يغير كثيرا
ما الحل اذن ؟
اكيد هو الــ trnsparencykey ولكن نريد ان تكون صورتك مثلا هي الفورم ؟
لن يقبل الــ trnsparencykey بوجود صورة في خلفية الفورم
اذا لابد من رسمها بالــ GDI+
اولا وقبل كل شيء لابد ان تكون الفورم بلا حدود اي

كود :
[color=#000000][COLOR=#0000bb] Me[/color][color=#007700].[/color][color=#0000bb]FormBorderStyle [/color][color=#007700]= [/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]FormBorderStyle[/color][color=#007700].[/color][COLOR=#0000bb]None  
[/COLOR][/COLOR]

ولون الخلفية للفورم هو نفسه الــ trnsparencykey
ولكن قبل ان نرسم الصورة في خلفية الفورم
كما تلاحظون الفورم الان بلا حدود يعني لن نستطيع تحريكها حيث نريد
لذلك علينا ان نكتب الكود اللازم لتحريك الفورم بالماوس :

كود :
[color=#000000][COLOR=#0000bb] Dim MouseCurrrnetPos[/color][color=#007700], [/color][color=#0000bb]MouseNewPos[/color][color=#007700], [/color][color=#0000bb]formPos[/color][color=#007700], [/color][color=#0000bb]formNewPos [/color][color=#007700]As [/color][COLOR=#0000bb]Point
    Dim mouseDown1 [/COLOR][color=#007700]As [/color][color=#0000bb]Boolean [/color][color=#007700]= [/color][COLOR=#0000bb]False
[/COLOR][color=#007700]Private [/color][color=#0000bb]Sub Form2_MouseDown[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]MouseEventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles Me[/color][color=#007700].[/color][COLOR=#0000bb]MouseDown
        [/COLOR][color=#007700]If [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]Button [/color][color=#007700]= [/color][color=#0000bb]MouseButtons[/color][color=#007700].[/color][COLOR=#0000bb]Left Then
            mouseDown1 [/COLOR][color=#007700]= [/color][COLOR=#0000bb]True
            MouseCurrrnetPos [/COLOR][color=#007700]= [/color][color=#0000bb]Control[/color][color=#007700].[/color][COLOR=#0000bb]MousePosition
            formPos [/COLOR][color=#007700]= [/color][COLOR=#0000bb]Location
        End [/COLOR][COLOR=#007700]If
    [/COLOR][COLOR=#0000bb]End Sub
    [/COLOR][color=#007700]Private [/color][color=#0000bb]Sub Form2_MouseMove[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]MouseEventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles Me[/color][color=#007700].[/color][COLOR=#0000bb]MouseMove
        [/COLOR][color=#007700]If [/color][color=#0000bb]mouseDown1 [/color][color=#007700]= [/color][COLOR=#0000bb]True Then
            MouseNewPos [/COLOR][color=#007700]= [/color][color=#0000bb]Control[/color][color=#007700].[/color][COLOR=#0000bb]MousePosition
            formNewPos[/COLOR][color=#007700].[/color][color=#0000bb]X [/color][color=#007700]= [/color][color=#0000bb]MouseNewPos[/color][color=#007700].[/color][color=#0000bb]X [/color][color=#007700]- [/color][color=#0000bb]MouseCurrrnetPos[/color][color=#007700].[/color][color=#0000bb]X [/color][color=#007700]+ [/color][color=#0000bb]formPos[/color][color=#007700].[/color][COLOR=#0000bb]X
            formNewPos[/COLOR][color=#007700].[/color][color=#0000bb]Y [/color][color=#007700]= [/color][color=#0000bb]MouseNewPos[/color][color=#007700].[/color][color=#0000bb]Y [/color][color=#007700]- [/color][color=#0000bb]MouseCurrrnetPos[/color][color=#007700].[/color][color=#0000bb]Y [/color][color=#007700]+ [/color][color=#0000bb]formPos[/color][color=#007700].[/color][COLOR=#0000bb]Y
            Location [/COLOR][color=#007700]= [/color][COLOR=#0000bb]formNewPos
            formPos [/COLOR][color=#007700]= [/color][COLOR=#0000bb]formNewPos
            MouseCurrrnetPos [/COLOR][color=#007700]= [/color][COLOR=#0000bb]MouseNewPos
        End [/COLOR][COLOR=#007700]If
    [/COLOR][COLOR=#0000bb]End Sub

    [/COLOR][color=#007700]Private [/color][color=#0000bb]Sub Form2_MouseUp[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]MouseEventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles Me[/color][color=#007700].[/color][COLOR=#0000bb]MouseUp
        [/COLOR][color=#007700]If [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]Button [/color][color=#007700]= [/color][color=#0000bb]MouseButtons[/color][color=#007700].[/color][COLOR=#0000bb]Left Then
            mouseDown1 [/COLOR][color=#007700]= [/color][COLOR=#0000bb]False
        End [/COLOR][COLOR=#007700]If
    [/COLOR][COLOR=#0000bb]End Sub  
[/COLOR][/COLOR]

والان لنرسم صورتك في خلفية الفورم يجب اولا ان تحضر صورة مناسبة واكيد لازم تكون
png او gif اي بدون خلفية
ضع الصورة في مجلد المشروع
واستورد الــ System.Drawing.Drawing2D

كود :
[color=#000000][COLOR=#0000bb]Imports System[/color][color=#007700].[/color][color=#0000bb]Drawing[/color][color=#007700].[/color][COLOR=#0000bb]Drawing2D  
[/COLOR][/COLOR]

والان في حدث الــ Form_Paint

كود :
[color=#000000][COLOR=#0000bb]  Dim g [/color][color=#007700]As [/color][color=#0000bb]Graphics [/color][color=#007700]= [/color][color=#0000bb]e[/color][color=#007700].[/color][COLOR=#0000bb]Graphics
        g[/COLOR][color=#007700].[/color][color=#0000bb]SmoothingMode [/color][color=#007700]= [/color][color=#0000bb]SmoothingMode[/color][color=#007700].[/color][COLOR=#0000bb]HighQuality
        Dim grfxPath1 [/COLOR][color=#007700]As [/color][color=#0000bb]GraphicsPath [/color][color=#007700]= New [/color][color=#0000bb]GraphicsPath[/color][COLOR=#007700]()
        [/COLOR][color=#0000bb]Dim frmRectangle [/color][color=#007700]As [/color][color=#0000bb]Rectangle [/color][color=#007700]= New [/color][color=#0000bb]Rectangle[/color][color=#007700]([/color][color=#0000bb]0[/color][color=#007700], [/color][color=#0000bb]0[/color][color=#007700], [/color][color=#0000bb]400[/color][color=#007700], [/color][color=#0000bb]400[/color][COLOR=#007700])
        [/COLOR][color=#0000bb]g[/color][color=#007700].[/color][color=#0000bb]DrawImage[/color][color=#007700]([/color][color=#0000bb]Image[/color][color=#007700].[/color][color=#0000bb]FromFile[/color][color=#007700]([/color][color=#0000bb]Application[/color][color=#007700].[/color][color=#0000bb]StartupPath [/color][color=#007700]& [/color][color=#dd0000]"\b.gif"[/color][color=#007700]), [/color][color=#0000bb]frmRectangle[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

لا اضن الكود بحاجة الى شرح
بقي ان تجرب الكود بنفسك واذا ما ضبط معك تحمل المثال من المرفقات


الملفات المرفقة
.rar   WindowsApplication3.rar (الحجم : 362.69 ك ب / التحميلات : 223)
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  من المنتدى القديم - تحريك الفورم من اي مكان ( للاخ omar2205 ) المبرمج علي نوري 2 736 16-08-15, 05:09 PM
آخر رد: otman_bel
  إيجاد جميع الكونترول الموجودة في الفورم Recursively Find All Controls in Form silverlight 0 503 26-05-15, 12:31 AM
آخر رد: silverlight
  طريقة تغيير الوان الفورم من ListView 3booody 4 1,330 19-08-13, 05:01 PM
آخر رد: 3booody
  طريقة من أجمل الطرق لجعل الفورم على شكل صورة عندك أسامة أحمد 63 7,395 12-05-13, 10:39 PM
آخر رد: APP
  خطوات بسيطه لجعل الفورم على شكل صورة معينه و بشكل اكثر احترافية - بدون أدوات خارجية السكر المغرور 4 1,705 08-05-13, 01:20 AM
آخر رد: السكر المغرور
  مقال- تطوير الفورم رسم الفورم باستخدام +GDI وتحريكه Moving و تغيير أبعاده Resize RaggiTech 2 876 05-10-12, 07:00 PM
آخر رد: RaggiTech
  كيف تجعل كل شئ مستديرا داخل الفورم RaggiTech 0 706 05-10-12, 03:11 PM
آخر رد: RaggiTech
  كيف تتحكم في أبعاد الفورم بإستخدام الماوس RaggiTech 0 447 05-10-12, 03:06 PM
آخر رد: RaggiTech
  نبضه 1 - إضافه الاداوات علي الفورم بالاكواد RaggiTech 0 332 05-10-12, 04:12 AM
آخر رد: RaggiTech
  تعلم أضافة الأدوات على الفورم وقت التشغيل وإضافة أحداث الضغط وما شايه لها RaggiTech 0 426 03-10-12, 09:29 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم