عند إضافة صورة إلى form
كيف أجعل حدود الشاشة تأخذ شكل الصورة؟
أو أحد يعرف مثل هذه الآداة وتعمل على vb.net
Visual Creations Form Shape Control
عند إضافة صورة إلى form
كيف أجعل حدود الشاشة تأخذ شكل الصورة؟
أو أحد يعرف مثل هذه الآداة وتعمل على vb.net
Visual Creations Form Shape Control
إليك الطريقة:
1- اعمل صورة بالشكل الذي تريد على برنامج رسم واجعل لها خلفية بلون مميز عن باقي الصورة - سنستخدم هذا اللون المميز لجعله شفافا وبهذا ستأخذ الفورم شكل الصورة
2- يمكن جعل الفورم تأخذ شكل الصورة بإحدى طريقتين
آ -اضبط الخاصية Backgroud Image إلى الصورة التي تريدها - الصورة الناتجة عن الخطوة 1 - ثم اضبط خاصية Transparency Key لذلك اللون المميز الذي وضعناه خلفية والذي نريد تفريغه
ب - يمكن عمل ذلك برمجيا وذلك بإضافة الصورة كـ Resource - اسمها في مثالي هنا _001 - ثم نستخدم الكود التالي في الحدث Load للفورم
' ضبط الخلفية Me.BackgroundImage = My.Resources._001 ' الحصول على لون بيكسل معين وضبطه كلون شفاف Me.TransparencyKey = My.Resources._001.GetPixel(1, 1)
وبهذا نكون قد غطينا طريقة جعل الفورم يأخذ شكل الصورة
بقي الآن موضوع تحريكها
- أضف متغيرا عاما على مستوى النموذج
Private mouse_offset As Point
وفي الحدث MouseDown للنموذج ضع الكود التالي
mouse_offset = New Point(-e.X, -e.Y)
وفي الحدث MouseMove للنموذج ضع الكود التالي
If e.Button = MouseButtons.Left Then Dim mousePos As Point = Control.MousePosition mousePos.Offset(mouse_offset.X, mouse_offset.Y) Location = mousePos End If
ولعمل زر الإغلاق X ببساطة ضع الأمر Me.Close في حدث النقر لزر Button
وبالتلي سيكون كود النموذج مع التحريك والإغلاق شبيها بمايلي
Public Class Form1 Private mouse_offset As Point Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Dim Msg As String = "End Program?" If MsgBox(Msg, MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.No Then e.Cancel = True End If End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ' ضبط الخلفية Me.BackgroundImage = My.Resources._001 ' الحصول على لون بيكسل معين وضبطه كلون شفاف Me.TransparencyKey = My.Resources._001.GetPixel(1, 1) End Sub Private Sub Form1_MouseDown(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseDown mouse_offset = New Point(-e.X, -e.Y) End Sub Private Sub Form1_MouseMove(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseMove If e.Button = MouseButtons.Left Then Dim mousePos As Point = Control.MousePosition mousePos.Offset(mouse_offset.X, mouse_offset.Y) Location = mousePos End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub End Class
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…