الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أجعل حدود الشاشة تأخذ شكل الصورة؟

مغلق
بدأه computeach في 12 يناير 2007 · 1 رد · 1,405 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عند إضافة صورة إلى form

كيف أجعل حدود الشاشة تأخذ شكل الصورة؟

أو أحد يعرف مثل هذه الآداة وتعمل على vb.net

Visual Creations Form Shape Control

#2

إليك الطريقة:

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

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…