منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تحريك الفورم عن طريق السحب والإفلات من أي مكان
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم

تعريف الكود:Idea

يقوم هذا الكود وبطريقة مميزة وإنسيابية بإعطاء المستخدم القدرة علي سحب النموذج وتحريكه ليس من شريط العنوان فقط (كما هو الحال الطبيعي) بل بالسحب من أي مكان علي الفورم حتي لو كانت خاصية FormBorderStyle علي None

الكود:
PHP كود :
Private MouseOffset As Point
Private IsLeftButtonDown As Boolean False

Private Sub Form1_MouseDown(ByVal sender As ObjectByVal e As MouseEventArgsHandles Form1.MouseDown
    Dim xOffset 
As Integer
    Dim yOffset 
As Integer
    
If e.Button MouseButtons.Left Then
        xOffset 
= -e.SystemInformation.FrameBorderSize.Width
        yOffset 
= -e.SystemInformation.CaptionHeight SystemInformation.FrameBorderSize.Height
        MouseOffset 
= New Point(xOffsetyOffset)
        
IsLeftButtonDown True
    End 
If
End Sub

Private Sub Form1_MouseMove(ByVal sender As ObjectByVal e As MouseEventArgsHandles Form1.MouseMove
    
If IsLeftButtonDown Then
        Dim MousePosition 
As Point Control.MousePosition
        MousePosition
.Offset(MouseOffset.XMouseOffset.Y)
        
Location MousePosition
    End 
If
End Sub

Private Sub Form1_MouseUp(ByVal sender As ObjectByVal e As MouseEventArgsHandles Form1.MouseUp
    
If e.Button MouseButtons.Left Then
        IsLeftButtonDown 
False
    End 
If
End Sub 
يعطيك الف عافيه

سؤال هذا الكود الي بالبدايه باي مكان اضيفه
  • Private MouseOffset As Point
    Private IsLeftButtonDown As Boolean = False


فعلا هذا الكود كامل >> كنت اعاني من هذا الكود

كان عندي كود السحب فقط من جيه واحده
يمكن وضع الكود بأكمله في أي مكان بين

PHP كود :
Public Class Form1 
و
PHP كود :
End Class 
يمكن وضعه أسفل السطر الأول تماماً هكذا
PHP كود :
Public Class Form1
    
Private MouseOffset As Point
    
Private IsLeftButtonDown As Boolean False

    
Private Sub Form1_MouseDown(ByVal sender As ObjectByVal e As MouseEventArgsHandles Form1.MouseDown
        Dim xOffset 
As Integer
        Dim yOffset 
As Integer
        
If e.Button MouseButtons.Left Then
            xOffset 
= -e.SystemInformation.FrameBorderSize.Width
            yOffset 
= -e.SystemInformation.CaptionHeight SystemInformation.FrameBorderSize.Height
            MouseOffset 
= New Point(xOffsetyOffset)
            
IsLeftButtonDown True
        End 
If
    
End Sub

    
Private Sub Form1_MouseMove(ByVal sender As ObjectByVal e As MouseEventArgsHandles Form1.MouseMove
        
If IsLeftButtonDown Then
            Dim MousePosition 
As Point Control.MousePosition
            MousePosition
.Offset(MouseOffset.XMouseOffset.Y)
            
Location MousePosition
        End 
If
    
End Sub

    
Private Sub Form1_MouseUp(ByVal sender As ObjectByVal e As MouseEventArgsHandles Form1.MouseUp
        
If e.Button MouseButtons.Left Then
            IsLeftButtonDown 
False
        End 
If

    
End Sub 
End 
Class 
السلام عليكم اخى
جزاكم الله خيرا
ولكن كيف يمكن القيام بذلك للكنترول مثل زر او نحوه..........
(28-05-16, 08:50 PM)نور الدين وليد كتب : [ -> ]السلام عليكم اخى
جزاكم الله خيرا
ولكن كيف يمكن القيام بذلك للكنترول مثل زر او نحوه..........

بعد اذن الاخ صاحب الموضوع
اقول اغلب الادوات لها ذات الاحداث Button1.MouseDown Button1.MouseMove Button1.MouseUp
اخي عندما اضع فوق ال End Class
يأتني هذا الخطا 3 مرات
Error 2 Handles clause requires a WithEvents variable defined in the containing type or one of its base types.
ما الحل !!!