تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] إنشاء فورم على شكل صورة PNG
#1
السلام عليكم ورحمة الله وبركاته

أخوتي المبرمجين الأعزاء أود المساعدة في مشكلة لم أستطع حلّها وهي,

جعل الفورم يأخذ نفس شكل الصورة , هذا مثال على كلامي

 
الرد }}
تم الشكر بواسطة:
#2
ضع خلفية الفورم صورة واجعل خاصية الصورة strech
الرد }}
تم الشكر بواسطة: ابراهيم ايبو
#3
السلام عليكم ورحمة الله وبركاته
اخي الكريم 
1 -انشئ فورم واجعل الخاصية FormBorderStyle =none 
 2 -في الخاصية BackgroundImage اختر الصورة التي تريد ويجب ان تكون خلفية الصورة بلون مصمت (اي لون واحد غير متدرج ولايكون هذا اللون داخل الصورة نفسها لانه هوالذي سيتم جعله شفافا وبذلك يأخذ الفورم شكل الصورة)
3 - الخاصية التي اسفلها مباشرة BackgroundImageLayuot اختر منها Stretch 
4 - الان الخاصية  TransparencyKey هنا ستضع فيها قيمة لون الخلفية التي ستكون شفافة وبذلك سيتم قص الفورم علىشطل الصورة الداخلي

يمكنك التجربة بدون صورة اعمل الاتي :
FormBorderStyle =none
Backcolor=White
ضع بانل وسط الفورم لونه احمر اصغر من الفورم
الان  TransparencyKey=White
شغل الفورم ستجد ان الفورم اخذت شكل البانل واختفى كل ماحولها من لون ابيض
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}
تم الشكر بواسطة: asmarsou , ZoRRo
#4
لكن ماراح أقدر أحرك الفورم يا أستاذ
الرد }}
تم الشكر بواسطة:
#5
السلام عليكم ورحمة الله وبركاته
اخي الكريم لو تلاحظ توقيعي 
(البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات)
الان انت وضعت صورة  في خلفية الفورم قم باضافة Panel اعلى وسط الصورة بشكل مستطيل يشبه شريط عنوان الفورم 
واجعل لون الخلفية له Transparent حتى لايظهر (هو موجود فوق الصورة )
الان اكتب له هذا الكود 

كود :
Dim a As Integer
   Dim b As Integer
   Private Sub planel1_MouseDown(sender As Object, e As MouseEventArgs) Handles Panel1.MouseDown

       a = Panel.MousePosition.X - Me.Location.X
       b = Panel.MousePosition.Y - Me.Location.Y

   End Sub
   Private Sub panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove

       Dim newPoint As New System.Drawing.Point()
       If e.Button = MouseButtons.Left Then

           newPoint = Panel.MousePosition
           newPoint.X = newPoint.X - (a)
           newPoint.Y = newPoint.Y - (b)
           Me.Location = newPoint
       End If
   End Sub
او يمكتك تجريب هذا الكود على الفورم  نفسها
كود :
Dim x, y As Integer
Dim newpoint As New Point

   Private Sub Form1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
       x = Control.MousePosition.X - Me.Location.X
       y = Control.MousePosition.Y - Me.Location.Y
   
   End Sub

   Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
       'في الماوس موف للفورم نكتب الكود التالي
       If e.Button = Windows.Forms.MouseButtons.Left Then
           newpoint = Control.MousePosition
           newpoint.X -= x
           newpoint.Y -= y
           Me.Location = newpoint
           Application.DoEvents()
       End If
   End Sub
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}
تم الشكر بواسطة: asmarsou , asmarsou
#6
(14-01-22, 11:48 PM)ابراهيم ايبو كتب :
السلام عليكم ورحمة الله وبركاته
اخي الكريم لو تلاحظ توقيعي 
(البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات)
الان انت وضعت صورة  في خلفية الفورم قم باضافة Panel اعلى وسط الصورة بشكل مستطيل يشبه شريط عنوان الفورم 
واجعل لون الخلفية له Transparent حتى لايظهر (هو موجود فوق الصورة )
الان اكتب له هذا الكود 

كود :
Dim a As Integer
   Dim b As Integer
   Private Sub planel1_MouseDown(sender As Object, e As MouseEventArgs) Handles Panel1.MouseDown

       a = Panel.MousePosition.X - Me.Location.X
       b = Panel.MousePosition.Y - Me.Location.Y

   End Sub
   Private Sub panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove

       Dim newPoint As New System.Drawing.Point()
       If e.Button = MouseButtons.Left Then

           newPoint = Panel.MousePosition
           newPoint.X = newPoint.X - (a)
           newPoint.Y = newPoint.Y - (b)
           Me.Location = newPoint
       End If
   End Sub

وهذه طريقة اخرى فقط غير المسميات (اسم البانل).... يتضمنها حدث رفع الماوس من على البنل
كود :
Private MouseOffset As Point
   Private IsLeftButtonDown As Boolean = False
Private Sub PlayerPanel_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PlayerPanel.MouseDown
       If e.Button = MouseButtons.Left Then
           IsLeftButtonDown = False
       End If
       Dim xOffset As Integer
       Dim yOffset As Integer
       If e.Button = MouseButtons.Left Then
           xOffset = -e.X - SystemInformation.FrameBorderSize.Width
           yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height
           MouseOffset = New Point(xOffset, yOffset)
           IsLeftButtonDown = True
       End If
   End Sub


   Private Sub PlayerPanel_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PlayerPanel.MouseMove
       If IsLeftButtonDown Then
           Dim MousePosition As Point = Control.MousePosition
           MousePosition.Offset(MouseOffset.X, MouseOffset.Y)
           Location = MousePosition - PlayerPanel.Location
       End If
   End Sub

   Private Sub PlayerPanel_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PlayerPanel.MouseUp
       If e.Button = MouseButtons.Left Then
           IsLeftButtonDown = False
       End If
   End Sub
الرد }}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو , ZoRRo
#7
السلام عليكم ورحمة الله وبركاته
تعجبني المشاركات جدا جدا
لأنها تنم عن التفاعل الإيجابي  في هذا المنتدى الرائع
شكرا لك أخي asmarsou 
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}
تم الشكر بواسطة: asmarsou
#8
(15-01-22, 12:11 AM)ابراهيم ايبو كتب :
السلام عليكم ورحمة الله وبركاته
تعجبني المشاركات جدا جدا
لأنها تنم عن التفاعل الإيجابي  في هذا المنتدى الرائع
شكرا لك أخي asmarsou 

العفو استاذ ... فخيركم من تعلم علما و علمه
الرد }}
تم الشكر بواسطة: ابراهيم ايبو
#9
شكرا أستاذ إبراهيم ,,

لكني وجد حل أسهل Big Grin
نعرف المتغيران كالتالي
كود :
    Private Property MoveForm As Boolean

    Private Property MoveForm_MousePos As Point

ثم نضع الكود التالي في الإفنت التالية


كود :
       
    Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown
        If e.Button = MouseButtons.Left Then
            MoveForm = True
            Me.Cursor = Cursors.Hand
            MoveForm_MousePos = e.Location
        End If
    End Sub

    Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
        If MoveForm Then
            Me.Location = Me.Location + (e.Location - MoveForm_MousePos)
        End If
    End Sub

    Private Sub Form1_MouseUp(sender As Object, e As MouseEventArgs) Handles Me.MouseUp
        If e.Button = MouseButtons.Left Then
            MoveForm = False
            Me.Cursor = Cursors.Default

        End If
    End Sub


أحببت المشاركة للفائدة Smile
الرد }}
تم الشكر بواسطة: سعود , سعود , asmarsou , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية اضافة صورة كخلفية في الكريستال ريبورت atefkhalf2004 1 152 22-07-22, 05:06 PM
آخر رد: أبو خالد الشكري
  استعراض صورة من listview الى picturbox Lathe1 1 194 12-07-22, 03:26 PM
آخر رد: Lathe1
Lightbulb المساعدة في استخراج فورم من مشروع أبو خالد الشكري 13 465 08-07-22, 05:36 PM
آخر رد: asemshahen5
  [VB.NET] رجاء اريد كود فيجوال بحث عن ملف في كمبيوتر داخل فورم jam3h 5 890 06-07-22, 12:02 AM
آخر رد: jam3h
  تعديل صورة مكان صورة محفوظة في قاعدة البيانات mustafa mohamed 2 928 26-03-22, 07:00 PM
آخر رد: mustafa mohamed
  [VB.NET] عرض صورة مخزنة فيdatabase محمد بوقزاحة 0 362 26-03-22, 06:48 PM
آخر رد: محمد بوقزاحة
  [VB.NET] ايه افضل طريقة لاستخراج ارقام من صورة ؟ الماجيك مسعد 2 629 17-03-22, 03:52 PM
آخر رد: الماجيك مسعد
  [VB.NET] استرجاع صورة من قاعدة بيانات اكسس 2007 alrashidy 0 479 11-03-22, 12:31 AM
آخر رد: alrashidy
  جلب صورة موجودة في موقع sascoxat 3 649 04-03-22, 11:13 PM
آخر رد: ميدو الفنان
  [سؤال] مشكة عمل اختصار لتشغيل فورم محدد ؟ silverlord 2 640 20-02-22, 06:15 PM
آخر رد: silverlord

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


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