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

عمل فورم علي شكل دائره باستخدام الفيجوال ستوديو 2008 و 2005

بدأه a_pess في 17 مارس 2008 · 5 رد · 1,865 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الاعزاء

طريقة عمل فورم علي شكل دائره ثم تحريكه باستخدام الماوس

يمكن استخدام ذلك مع الفيجوال ستوديو

نسخة 2005 و نسخة 2008 دوت نت

يمكن عمل صوره باي برنامج جرافيك واستخدامها كخلفيه مثلا

ودي اول الطريق لعمل Skin للبرنامج بتاعك

رجاء قراءة الملاحظات

وضبط الفورم طبقا للبيانات الموجوده في الملاحظات

اعتقد الامر متروك الان لكم في انتاج اشكال اخري

' General Notes

' To Do

' in form properties window

' set the size of form to (425, 425)

' set the backcolor to black for example

' set the formborderstyle to None

' set the form start position to centertoscreen

' add the following code to the form

Private MoveToNewPoint As New Point

Private frmDragg As Boolean = False

Private frmPointClicked As Point

Private Sub SetFormRegion(ByVal e As PaintEventArgs)

Dim shape As New System.Drawing.Drawing2D.GraphicsPath

shape.AddEllipse(0, 0, 425, 425)

Me.Region = New System.Drawing.Region(shape)

End Sub

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)

MyBase.OnPaint(e)

SetFormRegion(e)

End Sub

Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown

frmDragg = True

frmPointClicked = New Point(e.X, e.Y)

End Sub

Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove

If frmDragg Then

'Use the current mouse position to find the target location.

MoveToNewPoint = Me.PointToScreen(New Point(e.X, e.Y))

'Adjust the position based on where you started.

MoveToNewPoint.Offset(frmPointClicked.X * -1, _

(frmPointClicked.Y + SystemInformation.CaptionHeight + _

SystemInformation.BorderSize.Height) * -1)

'Move the form.

Me.Location = MoveToNewPoint

End If

End Sub

Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp

frmDragg = False

End Sub

مع خالص تحياتي لكم

اخوكم عمر

#2

جزاك الله خير اخي عمر وبارك الله

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#3

الف شكر على مجهودك معانا

#4

السلام عليكم

مشروع تخريج بالفيجوال ستديوه 2005 هل استطيع تطبيق هذا؟؟

اذا ممكن اي انضع الشفره ؟؟ظ

ومن اين ابتدى بها؟؟

و اذا ممكن شرح الشفره بالتفصيل ؟

واكون لك شاكره

اريد بقرب وقت

سلام

#5

اخي الكريم

مرفق الكود المطلوب مع فيجوال ستوديو 2005

وذلك بعد تعديل الكود قليلا حيث تم استخدام

ِAPI

لتحريك الفورم وستجد ان الكود قد اصبح افضل قليلا



' To Do
' in form properties window
' set the size of form to (425, 425)
' set the backcolor to black for example
' set the formborderstyle to None
' set the form start position to centertoscreen
' add the following code to the form

' Use the following API to move the form
Private Declare Sub ReleaseCapture Lib "user32" ()
Private Declare Sub SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, _
ByVal lParam As Integer)

Private Const WM_NCLBUTTONDOWN As Integer = &HA1
Private Const HTCAPTION As Integer = 2



Private Sub SetFormRegion(ByVal e As PaintEventArgs)

Dim shape As New System.Drawing.Drawing2D.GraphicsPath

shape.AddEllipse(0, 0, 425, 425)

Me.Region = New System.Drawing.Region(shape)

End Sub

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
SetFormRegion(e)
End Sub



Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
' Move the form
If e.Button = MouseButtons.Left Then
ReleaseCapture()
SendMessage(Me.Handle.ToInt32, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End If
End Sub
End Class
Public Class Form1

اعتقد انك لو جربت المثال سوف تفهم المطلوب

عموما لو لم تفهم الامر يمكنك ان تسال اي سؤال و ان شاء الله ساتابع الامر معك

ولمستخدمي 2008 يمكن استخدام نفس الكود تماما بدون اي تعديل

اخوك عمر

CircularForm_For_VS2005.rar

تم تعديل هذه المشاركة بواسطة a_pess في 10 أبريل 2008 في 20:12

#6

السلام عليكم

اين الضع الشفره.؟؟

و هل اضع هذا الكوود كاملا؟

سلام

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

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

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

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

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