Immer wenn Sie neue Elemente hinzuzufügen, um ein ListView-Steuerelement ListViewItems, und diese sind so zahlreich, dass die Steuerung nicht über genügend Speicherplatz, um sie auf dem Bildschirm anzuzeigen, das Hinzufügen einer vertikalen Bildlaufleiste. Das ist perfekt, außer, dass standardmäßig nicht, dass neue Elemente hinzugefügt werden.
Heute möchte ich zeigen, wie man dieses kleine Problem zu lösen.
Visual Basic-Steuerelemente. Der Kegel net listview geben Sie uns eine beeindruckende Reihe von Eigenschaften für die Konfiguration, so dass oft nicht bekannt sind.
Ich möchte ein einfaches Beispiel zeigen. Dafür brauchen wir eine Form, ein ListView-Steuerelement und eine Schaltfläche.
Die Eigenschaften, die uns am meisten interessieren, sind:
Nun, jetzt, wenn der Code:
Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handies MyBase.Load
ListView1.HideSelection = False
ListView1.FullRowSelect = True
ListView1.MultiSelect = False
End Sub
Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Static i As Integer = 0
i + = 1
ListView1.Items.Add (New ListViewItem ("Artikelnummer" & i))
ListView1.Items (ListView1.Items.Count - 1). Selected = True
ListView1.Items (ListView1.Items.Count - 1). Focused = True
ListView1.FocusedItem.EnsureVisible ()
End Sub
Laufen sollte es ähnlich sehen, was in diesem Bild gezeigt:
Das ist alles, wenn diese Informationen geholfen haben, hinterlassen Sie bitte einen Kommentar.
Informationen Bitacoras.com ...
Rate in Bitacoras.com: Immer wenn Sie neue Elemente hinzuzufügen, um ein ListView-Steuerelement ListViewItems, und diese sind so zahlreich, dass die Steuerung nicht über genügend Speicherplatz, um sie auf dem Bildschirm anzuzeigen, das Hinzufügen einer vertikalen Bildlaufleiste. Dies ist .....
Nun wissen wir alle, q, um die Daten anzuzeigen, sondern I q Ich bin interessiert, wenn sie erklären kann, wie in einem Modul gespeichert sind Sägen das Programm aunq
Eine Frage Ich möchte, dass SAMe sondern beispielsweise DataGridView IF NOT könnte mich in diesem Gebiet vorantreiben
Meine E-Mail:
richardramos789@hotmail.com
Sie wäre dankbar, wenn Sie mir helfen
Hallo, wie,
Schau, ich habe einen Zweifel mit einem ListView auf meinem System zu implementieren, ich bin der Zusammenstellung eines POS-Systems und geben Sie einen Code in meine txtbox Errungenschaft in meinem ListView drucken korrekt, meine Frage ist, dass ich bei der Anmeldung das gleiche Produkt möchten, anstatt eine neue Zeile wird zugegeben und in der Spalte Menge wird die Zahl zu erhöhen.
Zum Beispiel, wenn ich 12345 hinzufügen, wird in meinem ListView gedruckt, aber wenn ich auf 12345 Aufdruck auf einer neuen Zeile platzieren hinzufügen wird in einer Zeile gedruckt, sondern in der Spalte Betrag erhöht sich auf 2, wenn ich nicht erklären oder konnte mich in dieser Frage, die ich habe würde ich sehr schätzen zu führen.
Ich habe nicht sehr klar, was du tun willst, aber ich schlage vor, dass Sie an diesem Beispiel sehen können hilfreich sein: http://www.solovb.net/index.php/2009/02/19/modificar-datos- of-a-ListView /
Haben Sie weitere Fragen zögern Sie nicht mich zu kontaktieren.
Viele Grüße
Hallo Georg, was fragen Sie beinhaltet Daten Persistenz und eine Spalte gehören in den Rang eines bestimmten Schlüssel in einer Tabelle mit 2 Lösungen aktualisieren können Sie wählen: Zunächst erstellen Sie einen DB mit den von Ihnen benötigten Felder und verwenden Sie eine Verbindung entweder mit MySQL mit dem Adapter für ihn oder den SQL Server mit Visual Studio enthalten ist, ist der andere Weg über Flat Files, die die Daten in einer Datei zu speichern. txt und dann zum Lesen und Umschreiben einiger Daten gehen , für beide Optionen, wie Sie den Wert für eine Spalte rewquerida erhöhen müssen, sollten Sie auch dann eine Funktion, um diesen Wert unter der Bedingung, die Sie benötigen Basis zu erhöhen.
Elisha ich danke Ihnen sehr für Ihre prompte Antwort.
Ok schauen Ich werde erklären. Ich habe ein Textfeld, in dem die Produkte Ich habe in meiner DB hinzuzufügen, ok zum Beispiel, Coca-Cola, geben Sie mir den Barcode auf meinem TextBox in diesem Fall die Produktbeschreibung mit meinem Spalten würden 12345678, gutes Abschneiden in meinem ListView werden ListView sind:
Product Code, Bezeichnung, Menge, Preis verkaufen, Existenz.
Dann fügen Sie das Produkt an meiner Reihe ist voll von solchen Daten in meinem ListView, aber wenn ich wieder einfügen des Codes von Coca-Cola wird in einer nächsten Reihe, die Ich mag zu tun gezeigt, dass, wenn Sie ein anderes einfügen Nachdem das Produkt selbst und nicht in einer neuen Zeile, ändern Sie einfach die Zahl meiner Spalte Menge, in diesem Fall den Austausch zu 2.
Das ist mehr als nd ich tun möchte, wenn ich mehr oder weniger könnte sagen, diese Frage zu beantworten, ich würde es zu schätzen wissen.
Dank
Nun, das ist jetzt ein wenig leichter.
Das erste, was Sie vor dem Einsetzen müssen Sie eine neue Zeile ist es, die ListView zu überqueren, um zu überprüfen, wenn Sie bereits den Code Sie versuchen, einzufügen sind, eingegeben haben.
, Die Sie tun ein For Each, zum Beispiel
"Ich denke, eine Variable, um anzuzeigen, ob ich den Code gefunden, gab es schon
Dim vorhanden As Boolean = False
Für jedes Element als ListViewItem in listviewProductos.items
Dann, wenn item.text = txtCodigo.text
"Wenn Sie kommen hierher, weil es bereits geladen wurde
cantidadAnterior dim as Integer = CType (item.subitm (2). Text, Integer)
item.subitem (2). cantidadAnterior + Text = CType (txtCantidad.text, Integer)
'Wenn Sie finden Sie feststellen, dass bereits existierte
existiert = True
end if
Nächste
Wenn nicht, dann gibt
"Hier wird es dann nicht gefunden einfügen
End if
Nun, dienen Espro ... Sie können nicht ausschließen, einen Tippfehler Terner seit ich es geschrieben habe direkt hier
Aber sicher werden Sie dienen
Nochmals vielen Dank,
Sehen Sie bemerkte, dass, wenn ich über diese Frage, indem der Wert der Spalte Menge gearbeitet hatte, was passiert ist, ich bin Extrahieren von Werten aus einer MySQL-Datenbank zeigen, sieht aus wie ich den Code ausdrucken meine ListView
Listview Private Sub ()
Dim i As Integer
Dim s As Integer
Dim Anzahl As Integer
Zwischensumme Dim As Double
Dim Liste As New ListViewItem
As New MySqlCommand Dim Zeichenfolge ("SELECT * FROM Products WHERE ProductCode = '" & txtCodigoBarras.Text & "'", con)
cadena.ExecuteReader mysqldr = ()
Während mysqldr.Read ()
list = listView1.Items.Add (txtCodigoBarras.Text.Trim)
listar.SubItems.Add (CStr (mysqldr ("Description")))
listar.SubItems.Add (CStr (mysqldr ("Menge")))
listar.SubItems.Add (CStr (mysqldr ("PrecioVenta")))
listar.SubItems.Add (CStr (mysqldr ("Stock")))
End While
Dim vorhanden As Boolean = False
Für jeden Tagesordnungspunkt ListViewItem In ListView1.Items
Dann, wenn item.Text = txtCodigoBarras.Text
CantidadAnterior Dim As Integer = CType (listar.SubItems (2). Text, Integer)
listar.SubItems (2). Text = cantidadAnterior + CType (mysqldr ("Menge"), Integer)
existiert = True
End If
Nächste
Wenn nicht, dann gibt
End If
lblCantidadProd.Text = mysqldr.Item (3)
lblPrecioUnidad.Text = mysqldr.Item (5)
Für s = 0,0 bis ListView1.Items.Count - 1
Zwischensumme = Zwischensumme + ListView1.Items (n). SubItems (3). Text
Nächste
lbLSubTotal.Text = "$" & Format (Zwischensumme, "0.00")
Für i = 0 bis ListView1.Items.Count - 1
Zähler = Zähler + ListView1.Items (i). SubItems (2). Text
Nächste
Me.lblContador.Text = Zähler
mysqldr.Close ()
End Sub
Der Code, den ich verbrachte so umzusetzen und die Ergebnisse in dem folgenden Foto:
http://img193.imageshack.us/img193/4421/productosv.jpg~~V
Freund haha sorry, wenn ich mit so vielen Fragen aufgeregt, aber ich bin mehr oder weniger das Problem zu finden, zum Beispiel ein Produkt einführen
DORITOSNAC
Wird in der ersten Reihe eingefügt und wenn ich legte DORITOSNAC wird in der zweiten Reihe gedruckt, aber schon die ersten Veränderungen eingeführt sein Wert von der Menge auf 2 und wird wieder zurück zu geben auf einem 3 Zeilen gedruckt werden, sondern gleichermaßen die ab dem 1. Zeile ändert den Wert auf 3
Dann, wenn txtCodigoBarras.Text = txtCodigoBarras.Text
Dim vorhanden As Boolean = False
Für jeden Tagesordnungspunkt ListViewItem In ListView1.Items
Dann, wenn item.Text = txtCodigoBarras.Text
CantidadAnterior Dim As Integer = CType (item.SubItems (2). Text, Integer)
item.SubItems (2). Text = cantidadAnterior + CType (lblCantidadProd.Text, Integer)
existiert = True
End If
Nächste
Wenn nicht, dann gibt
End If
Mal sehen, ob ich es jetzt bekommen, wenn keine Erklärung Ihrerseits werden es Ihnen danken.
bereits erreicht zu lösen vielen Dank für Ihre Unterstützung erhalten die Lösung:
Dim Anzahl As Integer
Für j As Integer = 0 To Me.ListView1.Items.Count - 1
Wenn Me.ListView1.Items (j). SubItems (0). Dann Text = txtCodigoBarras.Text
count = CInt (Me.ListView1.Items (j). SubItems (2). Text) + 1
Me.ListView1.Items (j). SubItems (2). Text = count
Exit Sub