تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اريد نقل بيانات من listview الي اخري
#1
عندي 2 listview اريد نقل بيانات من الاولي الي الثانية

1 listview الاولي بالفورم الاول
2 listview الثانية بالفورم الثاني

اريد النقل بدون تكرار لان كل عملية add يتبعها تكرار للقيمة يعني لو عندي محمد في الاولي وتم نقلة الي الثانية لايتم تكرارة بعد كل عملية add وانما يضاف العنصر الجديد ولايتم اضافة عنصر تم اضافة مسبقا واريد الحفظ بعد الاضافة داخل الاداة بدون ملفات خارج البرنامج

اريد حفظ القيمة بعد الاضافة في اليست فيو الفورم 2
الرد }}}
تم الشكر بواسطة:
#2
لنقل محتويات الليست فيو

كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            For i As Integer = 0 To ListView1.Items.Count - 1
                Dim bol As Boolean = True
                For t As Integer = 0 To Form2.ListView1.Items.Count - 1
                    If Form2.ListView1.Items.Item(t).Text = ListView1.Items.Item(i).Text Then
                        bol = False
                    End If
                Next
                If bol = True Then
                    Dim itm As New ListViewItem
                    itm.Text = ListView1.Items.Item(i).Text
                    Form2.ListView1.Items.Add(itm)
                End If
            Next
            MsgBox("تم النقل", MsgBoxStyle.Information)
        Catch ex As Exception

        End Try
      
    End Sub
الرد }}}
تم الشكر بواسطة:
#3
مشكور جدا اخي بس المشكلة في عدم الحفظ اريد طريقة للحفظ بدون ملف نصي خارجي
المشكلة انقل 2 عمود وليس واحد فقط واريد الحفظ في ماي سيتنج my setting

اكوادك رائعة وهي تنقل بدون تكرار وهذا جزء من سؤالي
ولكن مشكلة الحفظ my setting
الرد }}}
تم الشكر بواسطة:
#4
للنقل بدون تكرار
كود الاستاذ just.coder صحيح 100%
واذا كنت تريد نقل اكثر من عامود
نفس الكود مع ذياده بسيطه
PHP كود :
Try
            For 
As Integer 0 To ListView1.Items.Count 1
                Dim bol 
As Boolean True
                
For As Integer 0 To Form2.ListView1.Items.Count 1
                    
If Form2.ListView1.Items(t).SubItems(1).Text ListView1.Items(i).SubItems(1).Text Then
                        bol 
False
                    End 
If
                
Next
                
If bol True Then
                    Dim itm 
As New ListViewItem
                    itm
.Text Form2.ListView1.Items.Count 1
                    itm
.SubItems.Add(ListView1.Items(i).SubItems(1))
                    
itm.SubItems.Add(ListView1.Items(i).SubItems(2))
                    
itm.SubItems.Add(ListView1.Items(i).SubItems(3))
                    
Form2.ListView1.Items.Add(itm)
                
End If
            
Next
            MsgBox
("تم النقل"MsgBoxStyle.Information)
        Catch 
ex As Exception

        End 
Try 

للحفظ فى ال setting

اولا اذهب الى My Project > Settings
فى خانة ال Name اكتب Itemss
وفى خانة ال Type اختار system.collections.specialized.stringcollection

ثم اذهب الى صفحة تحرير الكود تبع الفورم وفى اعلى الصفحه اكتب هذا الكود

PHP كود :
Imports System.Collections.Specialized 

دلوقتى اختار اى حدث تريده و اكتب هذا الكود للحفظ فى ال Settings

للحفظ

PHP كود :
My.Settings.Itemss = New StringCollection()

        
Dim items = New List(Of String)()

        For 
Each item As ListViewItem In Me.ListView1.Items
            Dim subitems 
= New List(Of String)()

            For 
Each subitem As ListViewItem.ListViewSubItem In item.SubItems
                subitems
.Add(subitem.Text)
            
Next

            items
.Add(String.Join("|"subitems))
        
Next

        My
.Settings.Itemss.AddRange(items.ToArray())
        
My.Settings.Save() 

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

PHP كود :
Dim items = New ListViewItem(My.Settings.Itemss.Count 1) {}

        
Dim i As Integer 0
        
While items.Length
            items
(i) = New ListViewItem(My.Settings.Itemss(i).Split("|"c))
            
+= 1
        End 
While

        
Me.ListView1.Items.AddRange(items

وهذا لمسح البيانات المحفوظه فى ال Settings

PHP كود :
My.Settings.Itemss.Clear() 


وهذا الكود يمكن ان تحتاجه

لمسح البيانات المتشابهه Remove Duplicates فى اى ليست فيو

PHP كود :
Public Sub RemoveDuplicates()
        
Dim item1 As ListViewItem
        Dim item2 
As ListViewItem
        
For As Integer ListView1.Items.Count 1 To 0 Step -1
            item1 
ListView1.Items(i)
            For 
As Integer 1 To ListView1.Items.Count 1 Step 1

                item2 
ListView1.Items(s)

                If 
item1.SubItems(1).Text item2.SubItems(1).Text Then
                    ListView1
.Items.Remove(item2)
                    Exit For
                
End If
            
Next s
        Next 
(i)
    
End Sub 
"الناس نيام فإذا ماتوا إنتبهوا"
الرد }}}
تم الشكر بواسطة:
#5
قمة في الروعة الاكواد اخي وفعلا نقلت بيانات محددة والكواد duplicat شغال
بس المشكلة في الحفظ الاكواد دية بتظهر خط متعرج subitems

items.Add(String.Join("|", subitems))

error message

value of type system .collection gneric.list of(string)cannot conferted to 1-dimenosial array of string
وانا عايز الاكواد كاملة في حدث زر للحفظ لو اضفت صورة الي العناصر من الجهاز هتتحفظ بنفس الاكواد
الرد }}}
تم الشكر بواسطة:
#6
اخى الكريم
يمكنك وضع .ToArray
لتصبح subitems.ToArray

اما بالنسبه للصور
يمكنك وضع iamgelist والتعامل معها
و يمكنك الاسفاده من هذا الرابط
http://msdn.microsoft.com/en-us/library/...elist.aspx

بالتوفيق ان شاء الله
"الناس نيام فإذا ماتوا إنتبهوا"
الرد }}}
تم الشكر بواسطة:
#7
طيب كدة المشكلة لني كود الحفظ ايضا لوتم الاضافة اكثر من مرة يضيف يعني يكرر ارجو تعديلة لكل لايكرر عملية الحفظ

يعني لو انا عندي 3 عناصر واتحفظو لو ضغط علي الزر كل مرة ينزل بيانات جديدة

Dim items = New ListViewItem(My.Settings.Itemss.Count - 1) {}

Dim i As Integer = 0
While i < items.Length
items(i) = New ListViewItem(My.Settings.Itemss(i).Split("|"c))
i += 1
End While

Me.ListView1.Items.AddRange(items)

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] طلب تعديل كود عرض بيانات xlsx ABDULLAH HASSAN 1 16 منذ 1 ساعه مضت
آخر رد: justforit
  اريد اضافة حفظ PDF فى مسار على الهارد- مثال الاستاذ عبدالله الدوسري new_programer 0 50 13-04-24, 12:59 PM
آخر رد: new_programer
  هل من الممكن العمل على قاعدة بيانات اكسل على الفيجوال بيسك خالد كامل1 4 145 24-03-24, 02:00 AM
آخر رد: خالد كامل1
  [سؤال] أتمنى اجابة وافية:عمل برنامج بقاعدة بيانات SQL دون حاجة تثبيت SQLSERVER dr.programming 6 658 19-03-24, 08:56 AM
آخر رد: سلامه محمد11
  استعلام select عن مجموعة بيانات Adel27213 1 215 15-03-24, 01:11 AM
آخر رد: justforit
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 201 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  [VB.NET] تحديث بيانات فى كلاس من جدول سيكوال asdfar1977 6 197 26-02-24, 01:07 AM
آخر رد: asdfar1977
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 241 25-02-24, 11:26 PM
آخر رد: heem1986
  [C#.NET] طباعة بيانات داتا جرد فيو h2551996 0 95 25-02-24, 02:31 PM
آخر رد: h2551996
  [VB.NET] معرفة بيانات الجهاز محمد بوقزاحة 1 328 21-02-24, 11:44 PM
آخر رد: AHMED213

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


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