تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سحب وافلات من داتا جريد فيو الي داتا جريد فيو اخرى
#3
اخي الكريم اعمل مشروع جديد و اضف له اثنين DataGridView 
اذهب الى الخاصية AllowDrop و اجعلها True 
في بداية النموذج عرف المتعيرات التالية
PHP كود :
   Private dragBoxFromMouseDown As Rectangle
    Private rowIndexFromMouseDown 
As Integer
    Private rowIndexOfItemUnderMouseToDrop 
As Integer 

سنحتاج الى معالجة 4 احداث على التوالي (MouseMove,MouseDown,DragOver,DragDrop) لكل اداة على حدا
لذا ارتايت ان اعمل وظيفة مشتركة وفق بارمترات

الوظيفة الاولى
PHP كود :
   Private Sub MoseMove(sender As ObjectAs MouseEventArgsByVal DataGrid As DataGridView)
 
       If (e.Button And MouseButtons.Left) = MouseButtons.Left Then
            If dragBoxFromMouseDown 
<> Rectangle.Empty AndAlso Not dragBoxFromMouseDown.Contains(e.Xe.YThen

                Dim dropEffect 
As DragDropEffects DataGrid.DoDragDrop(DataGrid.Rows(rowIndexFromMouseDown), DragDropEffects.Move)
 
           End If
 
       End If

 
   End Sub 

الوظيفة الثانية
PHP كود :
   Private Sub MoseDown(sender As ObjectAs MouseEventArgsByVal DataGrid As DataGridView)
 
       rowIndexFromMouseDown DataGrid.HitTest(e.Xe.Y).RowIndex
        If rowIndexFromMouseDown 
<> -1 Then
            Dim dragSize 
As Size SystemInformation.DragSize

            dragBoxFromMouseDown 
= New Rectangle(New Point(e.- (dragSize.Width 2), e.- (dragSize.Height 2)), dragSize)
 
       Else
            dragBoxFromMouseDown 
Rectangle.Empty
 
       End If


 
   End Sub 

الوظيفة الثالثة
PHP كود :
   Private Sub DrageDrop(sender As ObjectAs DragEventArgsByVal DragGrid As DataGridViewDropGrid As DataGridView)

 
       Dim clientPoint As Point DragGrid.PointToClient(New Point(e.Xe.Y))

 
       rowIndexOfItemUnderMouseToDrop DragGrid.HitTest(clientPoint.XclientPoint.Y).RowIndex

        If e
.Effect DragDropEffects.Move Then
            Dim rowToMove 
As DataGridViewRow TryCast(e.Data.GetData(GetType(DataGridViewRow)), DataGridViewRow)
 
           If rowToMove.Index 0 Then
                Return
            End 
If
 
           If rowIndexFromMouseDown rowIndexOfItemUnderMouseToDrop Then
                DropGrid
.Rows.RemoveAt(rowIndexFromMouseDown)
 
               DragGrid.Rows.Insert(rowIndexOfItemUnderMouseToDrop 1rowToMove)
 
           ElseIf rowIndexFromMouseDown rowIndexOfItemUnderMouseToDrop Then
                DropGrid
.Rows.RemoveAt(rowIndexFromMouseDown)
 
               DragGrid.Rows.Insert(rowIndexOfItemUnderMouseToDroprowToMove)

 
           End If
 
       End If

 
   End Sub 

الحدث الرابع و هو مشترك بين الاداتين بدون بارمترات
PHP كود :
   Private Sub DataGridView1_DragOver(sender As ObjectAs DragEventArgsHandles DataGridView1.DragOverDataGridView2.DragOver
        e
.Effect DragDropEffects.Move
    End Sub 

بعد كتابة الوظائف السابقة نذهب الى الحدث الموافق لكل اداة و نمرر البارميتر المناسب

احداث DataGridView1
PHP كود :
   Private Sub DataGridView1_MouseMove(sender As ObjectAs MouseEventArgsHandles DataGridView1.MouseMove
        MoseMove
(DataGridView1eDataGridView1)
 
   End Sub

    Private Sub DataGridView1_MouseDown
(sender As ObjectAs MouseEventArgsHandles DataGridView1.MouseDown
        MoseDown
(DataGridView1eDataGridView1)
 
   End Sub


    Private Sub DataGridView1_DragDrop
(sender As ObjectAs DragEventArgsHandles DataGridView1.DragDrop
        DrageDrop
(DataGridView1eDataGridView1DataGridView2)

 
   End Sub 


احداث DataGridView2
PHP كود :
   Private Sub DataGridView2_MouseMove(sender As ObjectAs MouseEventArgsHandles DataGridView2.MouseMove
        MoseMove
(DataGridView2eDataGridView2)
 
   End Sub

    Private Sub DataGridView2_MouseDown
(sender As ObjectAs MouseEventArgsHandles DataGridView2.MouseDown
        MoseDown
(DataGridView2eDataGridView2)
 
   End Sub

    Private Sub DataGridView2_DragDrop
(sender As ObjectAs DragEventArgsHandles DataGridView2.DragDrop

        DrageDrop
(DataGridView2eDataGridView2DataGridView1)
 
   End Sub 

و عملت هذا الاجراء البسيط لاضافة بعض البيانات الى كلتا الاداتين استدعيه في بداية تحميل النموذج
PHP كود :
   Private Sub AddSomeRows()


 
       Dim col1 As DataGridViewTextBoxColumn = New DataGridViewTextBoxColumn()
 
       Dim col2 As DataGridViewTextBoxColumn = New DataGridViewTextBoxColumn()
 
       Dim col3 As DataGridViewTextBoxColumn = New DataGridViewTextBoxColumn()
 
       Dim col4 As DataGridViewTextBoxColumn = New DataGridViewTextBoxColumn()

 
       col1.HeaderText "Column1"
 
       col1.Name "Column1"

 
       col2.HeaderText "Column2"
 
       col2.Name "Column2"

 
       col3.HeaderText "Column3"
 
       col3.Name "Column3"

 
       col4.HeaderText "Column4"
 
       col4.Name "Column4"



 
       DataGridView1.Columns.AddRange(New DataGridViewColumn() {col1col2})
 
       DataGridView2.Columns.AddRange(New DataGridViewColumn() {col3col4})

 
       Dim Data(,) As String = New String(21) {{1"Alkateb"}, {2"Abulaeth"}, {3"Alshaki"}}
 
       Dim Data2(,) As String = New String(21) {{1"Suaud"}, {2"AboLayla"}, {3"Alwadi"}}

 
       Dim s As Integer 0
        While s 
Data.Length 3
            Dim row1 
As DataGridViewRow DirectCast(DataGridView1.Rows(0).Clone(), DataGridViewRow)
 
           Dim row2 As DataGridViewRow DirectCast(DataGridView2.Rows(0).Clone(), DataGridViewRow)

 
           row1.Cells(0).Value Data.GetValue(s0)
 
           row1.Cells(1).Value Data.GetValue(s1)
 
           DataGridView1.Rows.Add(row1)
 
           '
            row2.Cells(0).Value = Data2.GetValue(s, 0)
            row2.Cells(1).Value = Data2.GetValue(s, 1)
            DataGridView2.Rows.Add(row2)

            s += 1
        End While

    End Sub 

الان شغل النموذج و جرب نقل البيانات بين الاداتين
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: سحب وافلات من داتا جريد فيو الي داتا جريد فيو اخرى - بواسطة ابو ليلى - 25-08-16, 12:26 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,244 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  [VB.NET] حقل الزامي ضمن داتا كريت فيو EMADW 1 412 20-05-25, 01:12 PM
آخر رد: princelovelorn
  [VB.NET] داتا كريت فيو EMADW 13 1,150 15-05-25, 10:48 PM
آخر رد: Taha Okla
  [VB.NET] جمع عمود داتا كريت فيو مع تجاهل الخلايا الفارغة EMADW 4 486 29-04-25, 10:57 PM
آخر رد: Taha Okla
  [VB.NET] ترقيم داتا كريت فيو EMADW 1 343 21-04-25, 11:52 PM
آخر رد: Taha Okla
  [VB.NET] استدعاء داتا كريت فيو من فورم اخر EMADW 1 420 16-04-25, 06:10 PM
آخر رد: مصمم هاوي
  [VB.NET] بطئ جلب البيانات في داتا جرد فيو h2551996 4 486 06-01-25, 06:45 PM
آخر رد: h2551996
  [VB.NET] طلب كود vba اكسل يقوم بنسخ خلية من قائمة ثم لصقها في خلية اخرى Faisal_kg 0 372 25-10-24, 09:13 PM
آخر رد: Faisal_kg
  التحكم في ارتفاع صفوف الداتا جريد فيو cvcvcv 3 4,663 09-10-24, 08:28 PM
آخر رد: Kamil
  اضافة اسطر فارعة في الداتا جريد فيو ismaeel 1 559 25-08-24, 02:43 AM
آخر رد: Taha Okla

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


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