Wenn ListViewItems neue Elemente sind ein ListView-Steuerelement hinzugefügt, und diese sind so zahlreich, dass die Steuerung nicht über genügend Speicherplatz, um sie auf dem Bildschirm anzuzeigen, fügen Sie eine vertikale Scroll-Leiste. Das ist perfekt, nur 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. Net Kegel der Listenansicht geben uns eine beeindruckende Reihe von Eigenschaften für die Konfiguration, so dass oft nicht bekannt sind.
Zeige ich ein einfaches Beispiel. Dafür brauchen wir eine Form, ein ListView-Steuerelement und eine Schaltfläche.
Die Eigenschaften, die uns interessieren, sind:
Nun, wenn der Code:
Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 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
Beim Ausführen sollte sehr ähnlich sehen, dass in diesem Bild gezeigt:
Das ist alles, wenn diese Informationen geholfen haben, hinterlassen Sie bitte einen Kommentar.
Bitacoras.com Information ...
Rate in Bitacoras.com: Wenn ListViewItems neuer Elemente zu einem ListView-Steuerelement hinzugefügt werden, und diese sind so zahlreich, dass die Steuerung nicht über genügend Speicherplatz, um sie auf dem Bildschirm anzuzeigen, fügen Sie eine vertikale Scroll-Leiste. Dies ist ... ..
Nun wissen wir alle, q, um die Daten, sondern meine q Ich bin daran interessiert, wenn sie erklären können, wie ein Modul in das Programm gespeichert ist angezeigt werden gesägt aunq
Beispiel eine, die gleiche Frage Aber ich möchte wissen, ob eine DataGridView in diesem Problem helfen könnte
Meine E-Mail:
richardramos789@hotmail.com
Sie wäre dankbar, wenn Sie mir helfen
Hallo, wie,
Schau, ich habe Zweifel mit einer Listenansicht, in meinem System zu implementieren, ich bin der Zusammenstellung eines POS-Systems und der Eingabe eines Codes auf meinem txtbox Errungenschaft in meinem listview korrekt gedruckt, meine Frage ist, dass ich bei der Anmeldung das gleiche Produkt möchten, anstatt eine neue Zeile wird es aufgenommen und in der Spalte Menge wird sich die Zahl zu erhöhen.
Zum Beispiel, wenn i 12345 hinzufügen, ist in meinen listview gedruckt, aber wenn ich 12345 auf Druck auf eine neue Zeile Platz hinzuzufügen, ist in einer Reihe gedruckt, aber dieser Betrag erhöht sich auf Spalte 2, wenn ich nicht erklären oder konnte mich in dieser Frage, dass ich ich würde es sehr schätzen, zu führen.
nicht sehr für mich klar, was sie tun wollen, aber ich schlage vor, Sie bei diesem Beispiel sinnvoll sein, aussehen könnte: 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.
Grüße
Hallo George, was Sie fragen beinhaltet Datenpersistenz und auf eine Säule gehören in den Rang eines bestimmten Schlüssel in einer Tabelle mit 2-Lösungen können Sie wählen, update: Zunächst erstellen Sie ein DB mit den von Ihnen benötigten Felder und verwenden Sie ein MySQL-Verbindung entweder zu verwenden oder den Adapter in SQL Server Visual Studio enthalten ist, wird der andere Weg durch flache Dateien in einer Datei gespeicherten Daten. txt und dann fahren Sie mit dem Lesen und Umschreiben von ein paar Daten , für beide Optionen, wie Sie den Wert für eine Spalte rewquerida erhöhen müssen, sollten Sie auch eine Funktion, dass dieser Wert unter der Bedingung, die Sie benötigen Basis zu erhöhen.
Elisha ich danke Ihnen sehr für Ihre prompte Antwort.
Ok schaue ich werde erklären. Ich habe eine TextBox, in denen ich hinzufügen, die Produkte habe ich in meiner DB, ok zum Beispiel Coca-Cola, geben Sie den Barcode auf meinem TextBox in diesem Fall würde 12345678 sein, eine gute Darstellung in meinem listview der Produktbeschreibung mit meinem Spalten listview sind:
Product Code, Bezeichnung, Menge, Verkaufspreis, Existence.
Dann fügen Sie das Produkt an meiner Linie ist voll von solchen Daten in meinem listview, aber wenn ich wieder fügen Sie den Code von Coca-Cola wird in einem nächsten Zeile, die Ich mag zu tun gezeigt, dass wenn Sie ein anderes einfügen Einmal im Ort das gleiche Produkt in einer neuen Zeile angezeigt wird, ändern Sie einfach die Zahl meiner Spalte Menge, in diesem Fall den Austausch zu 2.
Das ist mehr, als ich nd tun, wenn ich mehr oder weniger sagen konnte diese Frage zu beantworten, ich würde es zu schätzen wissen wollen.
Dank
Nun, das ist jetzt ein wenig leichter.
Das erste, was Sie vor dem Einlegen nicht eine neue Zeile zur Listenansicht überqueren, um zu überprüfen, wenn Sie bereits den Code, den Sie versuchen, einzufügen sind eingegeben haben.
Dass man mit einem zu tun For Each, zum Beispiel
"Ich denke, eine Variable zu mir, wenn der Code zu erzählen und fand, dass es
Dim vorhanden As Boolean = False
Für jedes Element als ListViewItem in listviewProductos.items
Dann, wenn item.text = txtCodigo.text
"Wenn du hierher gekommen ist, 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 merken, Sie fanden es existierte bereits
Es = True
end if
Nächste
Wenn nicht, dann gibt es
'Hier füge ich es aber gefunden
End if
Nun, dienen Espro Sie ... Sie können nicht ausschließen, ein Tippfehler golde seit ich es geschrieben habe direkt hier
Aber es ist sicher servieren Ihnen
Nochmals vielen Dank,
Schauen Sie mich an, ich bemerkte, dass, wenn das Ergebnis in Frage zu ändern den Wert der Spalte Menge gegeben hat, was passiert ist, dass ich das Extrahieren von Werten aus einer MySQL-Datenbank befasst sich mit den Code, den ich Ihnen, wie meine listview drucken, um zu zeigen
Listview Private Sub ()
Dim i As Integer
Dim s As Integer
Dim count As Integer
Zwischensumme Dim As Double
Dim Liste As New ListViewItem
As New MySqlCommand Dim Zeichenfolge ("SELECT * FROM Produkte 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 jedes Element als ListViewItem In ListView1.Items
Wenn txtCodigoBarras.Text Dann item.Text =
CantidadAnterior Dim As Integer = CType (listar.SubItems (2). Text, Integer)
listar.SubItems (2). cantidadAnterior + Text = CType (mysqldr ("Menge"), Integer)
Es = True
End If
Nächste
Wenn nicht, dann gibt es
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 (s). SubItems (3). Text
Nächste
lbLSubTotal.Text = "$" & Format (Zwischensumme, "0,00")
For i = 0 To 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
Ich habe den Code, die es implementiert gut und die Ergebnisse in das folgende Foto:
http://img193.imageshack.us/img193/4421/productosv.jpg
Freund haha sorry, wenn es dich stört so viele Fragen, aber ich finde mehr oder weniger das Problem, stellen das Produkt zB
DORITOSNAC
Ist in der ersten Reihe eingefügt und wenn ich legte DORITOSNAC ist in der zweiten Reihe gedruckt, aber schon wurden die ersten Änderungen seines Wertes von Quantität zu 2 und geben Sie wieder in einem 3 Zeilen gedruckt, sondern auch die 1 Zeile ändert den Wert auf 3
Wenn txtCodigoBarras.Text Dann txtCodigoBarras.Text =
Dim vorhanden As Boolean = False
Für jedes Element als ListViewItem In ListView1.Items
Wenn txtCodigoBarras.Text Dann item.Text =
CantidadAnterior Dim As Integer = CType (item.SubItems (2). Text, Integer)
item.SubItems (2). cantidadAnterior + Text = CType (lblCantidadProd.Text, Integer)
Es = True
End If
Nächste
Wenn nicht, dann gibt es
End If
Mal sehen, ob ich es jetzt, wenn keine Erklärung Ihrerseits werden Ihnen dankbar sein zu bekommen.
bereits gelöst vielen Dank für Ihre Unterstützung erhalten die Lösung:
Dim count As Integer
Für j As Integer = 0 To Me.ListView1.Items.Count - 1
Wenn Me.ListView1.Items (j). SubItems (0). TxtCodigoBarras.Text Dann Text =
count = CInt (Me.ListView1.Items (j). SubItems (2). Text) + 1
Me.ListView1.Items (j). SubItems (2). Text = count
Exit Sub