تقييم الموضوع :
  • 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
شكرا جار التجربة

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

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


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف يتم جعل اول سطر فى الداتا جريد فيو يظهر الرصيد السابق السيد الجوهري 7 258 27-12-16, 11:24 PM
آخر رد: السيد الجوهري
  حشر سطر فى الداتا جريد فيو السيد الجوهري 8 154 23-12-16, 11:14 PM
آخر رد: السيد الجوهري
  تحميل قيم اكبرid فى الداتا جريد فيو داخل تسكت بوكس araxis 8 236 20-12-16, 08:42 PM
آخر رد: ابراهيم النعيمي
  ما هو كود حفظ البيانات من الداتا جريد فيو إلى قاعدة البيانات kofa 4 266 18-12-16, 05:00 AM
آخر رد: zinom
  [VB.NET] تصفية داتا جريد tifagreet 2 82 18-12-16, 03:02 AM
آخر رد: tifagreet
  المجموع التراكمي في داتا جريد فيو السيد الجوهري 2 125 08-12-16, 09:46 PM
آخر رد: السيد الجوهري
  الحذف من قاعدة البيانات بدلات تشيك بوكس في داتا جريدفيو makky 2 134 08-12-16, 11:16 AM
آخر رد: superwoofer
  ازاى اما اكتب داتا فى التكست بوكس يدور عليها فى اى سطر ويزود على cell تانية 1 araxis 15 288 07-12-16, 09:50 PM
آخر رد: ابراهيم النعيمي
  ازاى يبقى الصفوف فى الداتا جريد فيو مترتبة زى اللى فى الداتا بيز اكسس بالظبط araxis 2 127 01-12-16, 07:04 AM
آخر رد: araxis
  كيف يتم حل مشكلة ظهور رسالة عند الضغط علي هيد داتا جريد فيو السيد الجوهري 4 135 30-11-16, 10:08 PM
آخر رد: السيد الجوهري

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


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