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

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

عندي كود ينسخ و عند لصق يعكس الاعمدة

الكود في المرفقات
أستخدم هذا


كود :
Imports System.Text.RegularExpressions



كود :
  Try
            If e.Control And (e.KeyCode = Keys.C) Then
                Dim d As DataObject = DataGrid.GetClipboardContent()
                Clipboard.SetDataObject(d)
                e.Handled = True
            ElseIf (e.Control And e.KeyCode = Keys.V) Then
                Dim rowLines As String() = Clipboard.GetText(TextDataFormat.Text).Split({0}, StringSplitOptions.None)
                Dim Cell As Byte
                For Each x As Match In Regex.Matches(rowLines(0), "(\t|^).+?", RegexOptions.RightToLeft)
                    DataGrid(Cell, DataGrid.CurrentRow.Index).Value = x.Value
                    Cell += 1
                Next
            End If
        Catch ex As Exception
            'Log Exception
        End Try

يمكنك أيضا الاستغناء عن المصفوفة والتعامل مع النص المنسوخ مباشرة

كود :
  Dim Cell As Byte
                For Each x As Match In Regex.Matches(Clipboard.GetText, "(\t|^).+?", RegexOptions.RightToLeft)
                    DataGrid(Cell, DataGrid.CurrentRow.Index).Value = x.Value
                    Cell += 1
                Next
(12-06-20, 07:56 PM)سامي محمد كتب : [ -> ]أستخدم هذا


كود :
Imports System.Text.RegularExpressions



كود :
  Try
            If e.Control And (e.KeyCode = Keys.C) Then
                Dim d As DataObject = DataGrid.GetClipboardContent()
                Clipboard.SetDataObject(d)
                e.Handled = True
            ElseIf (e.Control And e.KeyCode = Keys.V) Then
                Dim rowLines As String() = Clipboard.GetText(TextDataFormat.Text).Split({0}, StringSplitOptions.None)
                Dim Cell As Byte
                For Each x As Match In Regex.Matches(rowLines(0), "(\t|^).+?", RegexOptions.RightToLeft)
                    DataGrid(Cell, DataGrid.CurrentRow.Index).Value = x.Value
                    Cell += 1
                Next
            End If
        Catch ex As Exception
            'Log Exception
        End Try

يمكنك أيضا الاستغناء عن المصفوفة والتعامل مع النص المنسوخ مباشرة

كود :
  Dim Cell As Byte
                For Each x As Match In Regex.Matches(Clipboard.GetText, "(\t|^).+?", RegexOptions.RightToLeft)
                    DataGrid(Cell, DataGrid.CurrentRow.Index).Value = x.Value
                    Cell += 1
                Next

شكرا لك اخي لكن الكود غير شغال
اخي الكريم صاحب السؤال ...
السؤال غير واضح والمرفق باين انه ملف وورد وانت لست بحاجة لرفع ملف ان اردت سرد كود بل مباشرة اكتب الكود.
ساعد اخوانك ليقدمو لك الحل باسرع مايمكن.
تحياتي اخي الكريم.
الكود شغال بدون اي مشاكل .... لكن يجب ان لا يكون المأشر اخل الخلية عند نسخ الصف او لصقه ..... انقر على المساحة التي في بداية الصف بحث تكون جميع الخلايا مظلله وبدون
.... المأشر ان كان داخل الخلية فان عملية الصق تتم داخل الخلية وليس الصف
(12-06-20, 09:28 PM)سعود كتب : [ -> ]اخي الكريم صاحب السؤال ...
السؤال غير واضح والمرفق باين انه ملف وورد وانت لست بحاجة لرفع ملف ان اردت سرد كود بل مباشرة اكتب الكود.
ساعد اخوانك ليقدمو لك الحل باسرع مايمكن.
تحياتي اخي الكريم.

اخي سعود حاولت نسخ الكود في الرد لكن كان يتجزا لذا وضعته في ملف الورد
وهذا المشكل عند نسخ ولصق
ارجوا كود نسخ ولصق datagridview
(12-06-20, 10:26 PM)سامي محمد كتب : [ -> ]الكود شغال بدون اي مشاكل .... لكن يجب ان لا يكون المأشر اخل الخلية عند نسخ الصف او لصقه ..... انقر على المساحة التي في بداية الصف بحث تكون جميع الخلايا مظلله وبدون
.... المأشر  ان كان داخل الخلية فان عملية الصق تتم داخل الخلية وليس الصف

السلام عليكم
اخي سامي محمد جزاك الله خيرا الكود شغال
لم انتبه الى السطر الثاني عند تعديل عليه اشتغل الكود تمام
شكرا جزيلا