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

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

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


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ازاى اما اكتب داتا فى التكست بوكس يدور عليها فى اى سطر ويزود على cell تانية 1 araxis 4 82 أمس, 04:42 PM
آخر رد: araxis
  ازاى يبقى الصفوف فى الداتا جريد فيو مترتبة زى اللى فى الداتا بيز اكسس بالظبط araxis 2 64 01-12-16, 07:04 AM
آخر رد: araxis
  كيف يتم حل مشكلة ظهور رسالة عند الضغط علي هيد داتا جريد فيو السيد الجوهري 4 50 30-11-16, 10:08 PM
آخر رد: السيد الجوهري
  التحقق من وجود هذة القيمة فى الداتا جريد فيو مع العلم انى استخدم المعالج araxis 4 168 29-11-16, 07:26 AM
آخر رد: amgad525
  الحذف من قاعدة البيانات بدلات تشيك بوكس في داتا جريدفيو makky 1 70 17-11-16, 10:50 PM
آخر رد: السرور
  جعل مفتاح انتر يعمل عمل مفتاح تاب مع الداتا جريد فيو cvcvcv 7 1,897 15-11-16, 09:00 PM
آخر رد: samnaj00
  استدعاء داتا من الداتا بيز عن طريق المعالج araxis 14 275 15-11-16, 07:17 AM
آخر رد: araxis
  [VB.NET] تفريغ داتا جريد tifagreet 5 102 09-11-16, 07:06 PM
آخر رد: thevirus
  كيف يمكن الذهاب لصف جديد فى الداتا جريد فيو walkady 0 66 06-11-16, 11:31 PM
آخر رد: walkady
  [سؤال] هل يلزم تثبيت SQL Server في جهاز الزبون الذي ستبيع له برنامجك ام هناك طريقة اخرى؟ thevirus 3 143 06-11-16, 07:51 PM
آخر رد: العواد الصغير

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


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