تقييم الموضوع :
  • 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 ك ب / التحميلات : 265)
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  حساب مكان الفورم علي شاشة الكمبيوتر silverlight 2 3,167 18-06-23, 03:26 PM
آخر رد: kebboud
  [VB.NET] كود يجعل الفورم فى المقدمة دائماً [ بناءاً لطلب احد الاخوة وحتى سيتفاد منه الجميع ] elgokr 5 2,910 16-06-19, 08:32 AM
آخر رد: sendbad100
Rainbow [VB.NET] كلاس ResizeControls وطريقة جديد ومميزة لتكبير وتصغير ادوات الفورم تلقائيا الماجيك مسعد 8 8,758 01-10-18, 03:03 AM
آخر رد: LEO
  الفورم بخاصية none محمود صالح 1 2,051 30-12-17, 03:52 AM
آخر رد: طالب برمجة
  رسم الفورم و طباعته silverlight 1 2,399 19-06-17, 05:44 PM
آخر رد: silverlight
  من المنتدى القديم - تحريك الفورم من اي مكان ( للاخ omar2205 ) المبرمج علي نوري 2 2,944 16-08-15, 05:09 PM
آخر رد: otman_bel
  إيجاد جميع الكونترول الموجودة في الفورم Recursively Find All Controls in Form silverlight 0 3,041 26-05-15, 12:31 AM
آخر رد: silverlight
  طريقة تغيير الوان الفورم من ListView 3booody 4 5,796 19-08-13, 05:01 PM
آخر رد: 3booody
  طريقة من أجمل الطرق لجعل الفورم على شكل صورة عندك أسامة أحمد 63 26,054 12-05-13, 10:39 PM
آخر رد: APP
  خطوات بسيطه لجعل الفورم على شكل صورة معينه و بشكل اكثر احترافية - بدون أدوات خارجية السكر المغرور 4 7,251 08-05-13, 01:20 AM
آخر رد: السكر المغرور

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


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