تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سحب وافلات من داتا جريد فيو الي داتا جريد فيو اخرى
#1
السلام عليكم ورحمة الله وبركاتة


لو سمحتم يا محترفي المنتدى

عايز اعمل خاصية سحب وافلات من داتا جريد فيو الي داتا جريد فيو اخرى

مثلا اسحب صف من الداتا جريد فيو الاولي ثم افلته في الداتا جريد فيو الثانية

وشكرا

إِنْ يَنْصُرْكُمُ اللَّهُ فَلَا غَالِبَ لَكُمْ وَإِنْ يَخْذُلْكُمْ فَمَنْ ذَا الَّذِي يَنْصُرُكُمْ مِنْ بَعْدِهِ وَعَلَى اللَّهِ فَلْيَتَوَكَّلِ الْمُؤْمِنُونَ

لَيْسَ لَهَا مِنْ دُونِ اللَّهِ كَاشِفَةٌ


الرد }}}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته
في الرابط التالي شرح لسحب عمود بأكمله لكن في نفس الاداة
https://msdn.microsoft.com/en-us/library...2147217396
ومن اداة الى اداة اخرى في الرابط التالي
http://stackoverflow.com/questions/92866...-in-vb-net
ولسحب صف بأكمله الاجابة في النشاركة الثانية في الرابط التالي
http://stackoverflow.com/questions/15879...ing-action
ولسحب خلية واحدة فقط انظر هذا الرابط
https://social.msdn.microsoft.com/Forums...=vbgeneral

بالتوفيق
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 رَبِّ اغْفِرْ لِي وَلِوَالِدَيَّ
Heart
الرد }}}}
تم الشكر بواسطة:
#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 

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

فهل ممكن مشروع بالاكواد دي اذ ما لم تعمل معي؟
إِنْ يَنْصُرْكُمُ اللَّهُ فَلَا غَالِبَ لَكُمْ وَإِنْ يَخْذُلْكُمْ فَمَنْ ذَا الَّذِي يَنْصُرُكُمْ مِنْ بَعْدِهِ وَعَلَى اللَّهِ فَلْيَتَوَكَّلِ الْمُؤْمِنُونَ

لَيْسَ لَهَا مِنْ دُونِ اللَّهِ كَاشِفَةٌ


الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية تغير لون ال button اللي في الفورم بمعلومات في الداتا جريد فيو khaled12345 0 32 منذ 6 ساعة مضت
آخر رد: khaled12345
  سؤال فى الداتا جريد salah mansour 1 97 21-05-17, 12:09 AM
آخر رد: boudyonline
  تخزين مباشر بالداتا جريد alma_fandi 2 60 18-05-17, 03:03 AM
آخر رد: alma_fandi
  حساب عدد الصفوف في الداتا جريد فيو khaled12345 7 120 16-05-17, 09:17 PM
آخر رد: محمود بكرى
  مساعدة في البحث في الداتا جريد فيو khaled12345 2 97 10-05-17, 11:17 AM
آخر رد: khaled12345
  كيف اظهر بيانات داتا جريد فيو مباشرة على كريستال ريبورت samawi 4 164 07-05-17, 04:30 PM
آخر رد: Adrees
  كيفية التحكم في تنسيق عمود خلايا واحد في الداتا جريد تناسيم 3 103 30-04-17, 06:31 PM
آخر رد: alma_fandi
  أحتاج كود يغير لون صف أو اكثر من صف في داتا غريد فيو بناء على شرط samawi 2 72 29-04-17, 12:56 AM
آخر رد: samawi
  لو سمحتم كيف اضيف بيانات داتا جريد فيو الى داتا تيبل samawi 8 159 26-04-17, 03:03 PM
آخر رد: samawi
  فلتر داتا جريد وكريستال ريبورت alma_fandi 14 399 20-04-17, 11:52 PM
آخر رد: IBRA939

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


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