Ori de câte ori se adaugă elemente noi la o ListViewItems ListView de control, şi acestea sunt atât de numeroase ca de control nu are spaţiu suficient pentru a le afişa pe ecran, adăugând o bară verticală de defilare. Acest lucru este perfect, cu excepţia faptului că în mod implicit nu sunt elemente noi, care se adaugă.
Astăzi, vreau să arăt cum să rezolve această mică problemă.
Controalele Visual Basic. Con net ListView să ne dea o gamă impresionantă de proprietăţi pentru configurare, astfel ca de multe ori nu sunt cunoscute.
Vreau să arăt un exemplu simplu. Pentru că avem nevoie de un formular, un control listview şi un buton.
Proprietăţile care ne sunt cel mai mare interes:
Ei bine, acum, dacă codul:
Private Sub Form1_Load (ByVal Ca expeditor System.Object, ByVal e ca System.EventArgs) Manere MyBase.Load
ListView1.HideSelection = Fals
ListView1.FullRowSelect = True
ListView1.MultiSelect = Fals
End Sub
Private Sub Button1_Click (ByVal Ca expeditor System.Object, ByVal e ca System.EventArgs) Manere Button1.Click
Static i ca integer = 0
i + = 1
ListView1.Items.Add (New ListViewItem ("Numărul articolului" & i))
ListView1.Items (ListView1.Items.Count - 1). Selectate = True
ListView1.Items (ListView1.Items.Count - 1). Axat = True
ListView1.FocusedItem.EnsureVisible ()
End Sub
Rularea ar trebui să arate mai mult ca ceea ce este prezentat în această imagine:
Asta e tot, în cazul în care aceste informaţii te-a ajutat, vă rugăm să lăsaţi un comentariu.
Bitacoras.com informaţii ...
Rata de în Bitacoras.com: Ori de câte ori se adaugă elemente noi la o ListViewItems ListView de control, şi acestea sunt atât de numeroase ca de control nu are spaţiu suficient pentru a le afişa pe ecran, adăugând o bară verticală de defilare. Acest lucru este .....
Ei bine, ştim cu toţii Q pentru a afişa datele, dar eu q am interesat dacă pot explica modul în care sunt stocate într-un modul de tăiere sunt programul aunq
O INTREBARE Vreau ca DataGridView acelaşi exemplu, DAR PENTRU DACĂ NU m-ar putea ajuta în acest NUMĂR
My Email:
richardramos789@hotmail.com
Te-ar fi recunoscător dacă mi-ai ajuta
Bună ziua, cum,
Uite am o îndoială cu o listview să pună în aplicare pe sistemul meu, am punerea împreună un sistem POS şi introduceţi un cod în realizare txtbox mea în imprimare mea listview corect, întrebarea mea este că vreau, când înregistrarea acelaşi produs, mai degrabă decât adăugarea unui nou rând se adaugă la aceasta şi în coloana Cantitate va creşte numărul.
De exemplu, dacă am adăuga 12345, este tipărită în listview meu, dar dacă am adăuga 12345 de a plasa de imprimare pe un rând nou este tipărit într-un rând, dar în suma de coloana creste la 2 nu, dacă am explica sau m-ar putea ghida în această întrebare pe care am mi-ar aprecia foarte mult.
Am nici foarte clar ceea ce vrei sa faci, dar am sugera că te uiti la acest exemplu ar putea fi de ajutor: http://www.solovb.net/index.php/2009/02/19/modificar-datos- de-a-listview /
Orice întrebări suplimentare, nu ezitati sa ma contactati.
În ceea ce priveşte
Salut George, ceea ce vă întreb implică persistenţa de date şi pentru a actualiza o coloană care aparţine la rangul de o cheie specifică într-un tabel cu 2 soluţii pe care le puteţi alege: prima creare a unei baze de date cu câmpurile de care aveţi nevoie şi de a folosi o legătură fie cu MySQL folosind adaptorul pentru aceasta sau SQL Server este inclus în Visual Studio, un alt mod este prin fişiere plate, care salvează datele într-un fişier. txt şi apoi trece la citirea si rescrierea unor date , pentru ambele opţiuni ca ai nevoie pentru a creşte valoarea pentru o rewquerida coloană, ar trebui să se aplice, de asemenea, o funcţie pentru a creşte această valoare pe baza condiţia aveţi nevoie.
Elisei vă mulţumesc foarte mult pentru răspunsul dumneavoastră prompt.
Ok uite voi explica. Am o caseta de text în care se adaugă produsele pe care le am în PB mea, ok de exemplu, Coca-Cola, am să introduceţi codul de bare de pe TextBox mea, în acest caz ar fi 12345678, care arată bine în listview meu descrierea produsului, cu coloane mele listview sunt:
Cod produs, descriere, cantitate, preţ de vânzare, Existenţa.
Apoi se adaugă produsul la rândul meu este plin de astfel de date în listview mea, dar dacă am re-introduceţi codul de Coca-Cola, este prezentată în rândul următor, pe care îmi place să fac este că, atunci când introduceţi un alt Odată ce produsul în sine, mai degrabă decât într-un rând nou, doar schimba numărul de coloane Cantitate mea, în acest caz, schimb de la 2.
Asta e mai mult de-a vreau să fac, dacă am putea spune mai mult sau mai puţin răspunde la această întrebare mi-ar aprecia.
Mulţumiri
Ei bine, acum este un pic mai uşor.
Primul lucru pe care nu înainte de a introduce o nouă linie este de a traversa listview pentru a verifica dacă aţi introdus deja codul pe care încercaţi să introduceţi.
Asta faci o pentru fiecare, de exemplu,
"Cred ca o variabilă care să indice dacă am găsit codul deja exista
Dim există ca Boolean = false
Pentru fiecare element ca ListViewItem în listviewProductos.items
Apoi, dacă item.text = txtCodigo.text
"Dacă veniţi aici este pentru că a fost deja încărcat
cantidadAnterior dim ca Integer = Ctype (item.subitm (2) de text,. Întreg)
item.subitem (2) cantidadAnterior +. de text = Ctype (txtCantidad.text, integer)
"Dacă găsiţi observaţi că deja există
există = True
final, dacă
Următor
Dacă nu, atunci nu există
"Aici nu este găsit apoi introduceţi
Final, dacă
Ei bine, Espro servi ... nu se poate exclude o Terner greşeli, deoarece l-am scris direct aici
Dar, cu siguranţă vă va servi
Multumesc din nou,
Vezi ce a comentat că, dacă am fi lucrat la această problemă prin schimbarea valorii coloanei Cantitate, ceea ce se intampla este ca eu sunt de extragere de valori dintr-o bază de date MySQL, am arata arata ca codul de imprimare listview mea
Listview Private Sub ()
Dim i ca integer
Dim e ca integer
Numărul Dim ca integer
Dim Subtotal Ca dublă
Lista Dim Ca nouă ListViewItem
Ca nouă MySqlCommand string Dim ("SELECT * FROM produse WHERE ProductCode = '" & txtCodigoBarras.Text & "" ", con)
cadena.ExecuteReader mysqldr = ()
În timp ce mysqldr.Read ()
Lista = listView1.Items.Add (txtCodigoBarras.Text.Trim)
listar.SubItems.Add (CStr (mysqldr ("Descriere")))
listar.SubItems.Add (CStr (mysqldr ("Cantitate")))
listar.SubItems.Add (CStr (mysqldr ("PrecioVenta")))
listar.SubItems.Add (CStr (mysqldr ("stoc")))
Sfârşit timp ce
Dim există ca Boolean = false
Pentru fiecare articol, cum ListViewItem În ListView1.Items
Apoi, dacă item.Text = txtCodigoBarras.Text
CantidadAnterior Dim Ca Integer = Ctype (listar.SubItems (2) text,. Întregi)
listar.SubItems (2). Text = cantidadAnterior + Ctype (mysqldr ("Cantitate"), Întreg)
există = True
Final, dacă
Următor
Dacă nu, atunci nu există
Final, dacă
lblCantidadProd.Text = mysqldr.Item (3)
lblPrecioUnidad.Text = mysqldr.Item (5)
Pentru s = 0.0 Pentru a ListView1.Items.Count - 1
Subtotal = Subtotal peste ListView1.Items (e) SubItems (3). Text.
Următor
lbLSubTotal.Text = "$" & Format (Subtotal, "0.00")
Pentru i = 0 Pentru a ListView1.Items.Count - 1
contor = contor + ListView1.Items (i) SubItems (2).. Text
Următor
Me.lblContador.Text = contor
mysqldr.Close ()
End Sub
Codul de care am petrecut atât de punerea în aplicare a acesteia şi a vedea rezultatele în fotografia următoare:
http://img193.imageshack.us/img193/4421/productosv.jpg~~V
Prietenul haha pare rau daca am suparat cu atât de multe întrebări, dar am găsi mai mult sau mai puţin problema, de exemplu, să introducă produsul
DORITOSNAC
Se introduce în rândul din faţă şi atunci când am pus DORITOSNAC este imprimat pe al doilea rând, dar au introdus deja primele schimbări valoarea sa de la cantitate la 2 şi este tipărită înapoi pentru a intra din nou pe un rând de 3, dar la fel de de la 1 rând îşi modifică valoarea la 3
Apoi, dacă txtCodigoBarras.Text = txtCodigoBarras.Text
Dim există ca Boolean = false
Pentru fiecare articol, cum ListViewItem În ListView1.Items
Apoi, dacă item.Text = txtCodigoBarras.Text
CantidadAnterior Dim Ca Integer = Ctype (item.SubItems (2) text,. Întregi)
item.SubItems (2). Text = cantidadAnterior + Ctype (lblCantidadProd.Text, integer)
există = True
Final, dacă
Următor
Dacă nu, atunci nu există
Final, dacă
Să vedem dacă am înţeles, acum, dacă nu orice explicaţie din partea ta va fi recunoscător.
deja atins rezolva multe mulţumiri pentru sprijinul acordat obţine soluţia:
Numărul Dim ca integer
Pentru ca integer j = 0 Pentru a Me.ListView1.Items.Count - 1
Dacă Me.ListView1.Items (j) SubItems (0). Apoi Text. = TxtCodigoBarras.Text
count = CInt (Me.ListView1.Items (j). SubItems (2). text) + 1
Me.ListView1.Items (j). SubItems (2) Text = numărul.
Exit Sub