| |
VB.NET - Ein- und Umsteigersuche in Listview | | | Autor: Marty** | Datum: 05.03.17 08:10 |
| Hallo,
ich suche eine Möglichkeit, das die Werte von Listview1 (Wert2 und 3) aus Listview2 (Wert4 und 5) verglichen werden. Wenn eine Übereinstimmung da ist, sollen die Werte aus Listview2 (Wert6 und 7) im Label 3 und 4 ausgegeben werden.
Mein jetziger Code:
Public Class Form1
Dim col1(), Col2() As String
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Width = 615
Me.Height = 360
Dim la1 As New Label With {.Parent = Me, .Text = "ListView1", .Top = _
30, .Left = 8}
Dim la2 As New Label With {.Parent = Me, .Text = "ListView2", .Top = _
30, .Left = 268}
Dim la3 As New Label With {.Parent = Me, .Text = "Wert6 aus LV2 ?", _
.Top = 265, .Left = 8}
Dim la4 As New Label With {.Parent = Me, .Text = "Wert7 aus LV2 ?", _
.Top = 288, .Left = 8}
Dim lv1 As New ListView With {.Parent = Me, .Width = 250, .Height = _
200, .Top = 55, .Left = 10, .GridLines = True, .View = View.Details, _
.FullRowSelect = True}
Dim lv2 As New ListView With {.Parent = Me, .Width = 310, .Height = _
200, .Top = 55, .Left = 270, .GridLines = True, .View = View.Details, _
.FullRowSelect = True}
col1 = {"Nr:", "Wert2", "Wert3", "Wert4"}
Col2 = {"Wert3", "Wert4", "Wert5", "Wert6", "Wert7"}
For i As Integer = 0 To col1.Length - 1
lv1.Columns.Add(col1(i))
Next i
For i As Integer = 0 To Col2.Length - 1
lv2.Columns.Add(Col2(i))
Next i
lv1.Items.Add("test")
lv1.Items(0).SubItems.Add("1")
lv1.Items(0).SubItems.Add("2")
lv1.Items(0).SubItems.Add("3")
lv1.Items.Add("test")
lv1.Items(1).SubItems.Add("1")
lv1.Items(1).SubItems.Add("5")
lv1.Items(1).SubItems.Add("6")
lv2.Items.Add("test2")
lv2.Items(0).SubItems.Add("1")
lv2.Items(0).SubItems.Add("2")
lv2.Items(0).SubItems.Add("200")
lv2.Items(0).SubItems.Add("300")
lv2.Items.Add("test2")
lv2.Items(1).SubItems.Add("1")
lv2.Items(1).SubItems.Add("5")
lv2.Items(1).SubItems.Add("250")
lv2.Items(1).SubItems.Add("350")
lv2.Items.Add("test2")
lv2.Items(2).SubItems.Add("1")
lv2.Items(2).SubItems.Add("5")
lv2.Items(2).SubItems.Add("300")
lv2.Items(2).SubItems.Add("400")
End Sub
End Class MfG Marty ** | |
Re: suche in Listview | | | Autor: Marty** | Datum: 05.03.17 08:49 |
| ich glaube ich habe mich falsch ausgedrückt. Die Werte aus Listview1 (Wert2 und 3) Sollen in Listview2 gesucht werden. Die gefunden Werte sollen dann im Label ausgegeben werden. | |
Re: suche in Listview | | | Autor: Manfred X | Datum: 05.03.17 11:07 |
| Hallo!
Deine Daten gehören in eine Klasse, die als Datenquelle fungierten kann,
z.B. generische List(of ...) oder Datatable.
Durch einen Linq-Befehl läßt sich z.B. die Schnittmenge der Daten bestimmen.
Die Ergebnis-Auflistung kann an eine Listbox oder ein Grid gebunden werden.
Beitrag wurde zuletzt am 05.03.17 um 11:11:03 editiert. | |
Re: suche in Listview | | | Autor: effeff | Datum: 05.03.17 12:00 |
| auf einer Form existieren drei DataGridView; Eines für die Menge an Daten, welche im zweiten gesucht werden soll und das dritte, um das Ergebnis darzustellen:
Public Class Form1
Dim dt1 As New DataTable
Dim dt2 As New DataTable
Dim dt3 As DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dt1.Columns.Add("ID")
dt1.Columns.Add("Wert")
dt1.PrimaryKey = New DataColumn() {dt1.Columns("ID")}
Dim columnsdt1(1) As DataColumn
columnsdt1(0) = dt1.Columns("ID")
dt1.PrimaryKey = columnsdt1
dt1.Namespace = "DT1"
dt1.Rows.Add(1, 10)
dt1.Rows.Add(2, 20)
dt1.Rows.Add(3, 30)
dt1.Rows.Add(4, 40)
dt1.Rows.Add(5, 50)
dt1.Rows.Add(6, 60)
dt1.Rows.Add(7, 70)
dt1.Rows.Add(8, 80)
dt1.Rows.Add(9, 90)
dt1.Rows.Add(10, 100)
dt2.Columns.Add("ID")
dt2.Columns.Add("Wert")
dt2.PrimaryKey = New DataColumn() {dt2.Columns("ID")}
Dim columnsdt2(1) As DataColumn
columnsdt2(0) = dt2.Columns("ID")
dt2.PrimaryKey = columnsdt2
dt2.Namespace = "DT2"
dt2.Rows.Add(1, 10)
dt2.Rows.Add(2, 25)
dt2.Rows.Add(3, 30)
dt2.Rows.Add(4, 43)
dt2.Rows.Add(5, 58)
dt2.Rows.Add(6, 60)
dt2.Rows.Add(7, 77)
dt2.Rows.Add(8, 80)
dt2.Rows.Add(9, 91)
dt2.Rows.Add(10, 100)
dgv1.DataSource = dt1
dgv2.DataSource = dt2
dt3 = dt2.Copy
Dim dv As New DataView(dt3)
Dim filter As String = ""
For Each r As DataRow In dt1.Rows
filter = filter & "'" & r(1).ToString & "'"
Next
filter = filter.Replace("''", "', '")
dv.RowFilter = "Wert IN (" & filter & ")"
dgv3.DataSource = dv
End Sub
End Class EALA FREYA FRESENA | |
Datatables: Linq-Beispiel (Intersect) | | | Autor: Manfred X | Datum: 06.03.17 00:08 |
| Ich nehme Bezug auf das Datenbeispiel von effeff.
Dort muß bei der Definition der Datatablespalten jeweils noch
durch den Parameter Gettype(Integer) der Datentyp festgelegt werden.
Option Infer On muß gegeben sein.
Dim Common = _
((From r1 As DataRow In dt1.AsEnumerable _
Select v1 = r1.Field(Of Integer)(0), _
v2 = r1.Field(Of Integer)(1)).Intersect _
(From r2 As DataRow In dt2.AsEnumerable _
Select v1 = r2.Field(Of Integer)(0), _
v2 = r2.Field(Of Integer)(1))).tolist "Common" ist eine generische Liste, deren Elemente anonyme Typen sind, deren
Elemente über die Member v1, v2 abgerufen werden können: Common(0).v1
Diese Liste enthält alle Wertepaare, die in beiden Datatables vorkommen (Intersect).
Beitrag wurde zuletzt am 06.03.17 um 00:22:44 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|