منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : غير شكل الفورم مع الــ gdi+
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع : 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]

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