Listview: Madde her zaman görünür

Eğer bir liste görünümü denetimi ListViewItems yeni öğeler eklemek ve bu dikey kaydırma çubuğu ekleyerek, kontrol ekranda görüntülemek için yeterli alan yok öyle çoktur ki, her zaman. Bu, varsayılan olarak yeni öğeler eklenir olmadığını dışında, mükemmel.

Bugün bu küçük sorunu çözmek için nasıl göstermek istiyorum.

Visual basic kontrolleri. Koni net listview yapılandırma için bize özellikleri etkileyici bir dizi vermek, çoğu zaman bilinmeyen o kadar.

Ben basit bir örnek göstermek istiyorum. Bunun için bir form, bir liste görünümü denetimi ve bir düğmeye ihtiyacımız var.

listviewItemSiempreVisible001

Özellikleri en fazla ilgilendiren bize şunlardır:

  • HideSelection: hayır listview kontrolü odak varsa false olarak ayarlamak, biz ne seçilen öğeyi görmeye devam ediyor.
  • ListView1.FocusedItem.EnsureVisible () Seçili öğenin her zaman görünür olmaya zorlamak.

Eh, şimdi kodu ise:

     Private Sub Form1_Load (System.EventArgs As System.Object, ByVal e ByVal sender As) Kolları MyBase.Load
         ListView1.HideSelection = False
         ListView1.FullRowSelect = True
         ListView1.MultiSelect = False
     End Sub

     Private Sub Button1_Click (System.EventArgs As System.Object, ByVal e ByVal sender As) Kolları Button1.Click
         Statik i As Integer = 0
         i + = 1
         ListView1.Items.Add (Yeni ListViewItem ("Ürün numarası" & i))
         ListView1.Items (ListView1.Items.Count - 1). Selected = True
         ListView1.Items (ListView1.Items.Count - 1). Odaklı = True

         ListView1.FocusedItem.EnsureVisible ()
     End Sub

Bu resmi gösterilir ne gibi çok görünmelidir Koşu:

listviewItemSiempreVisible002

Bu bilgilerin size yardımcı olmadığını, hepsi bu, lütfen yorum bırakın.

"Her zaman ön Öğe Listview" 11 Responses

  1. Bitacoras.com diyor ki:

    Bilgi Bitacoras.com ...

    Bitacoras.com Puan Ver: Bir liste görünümü kontrolü ListViewItems yeni öğeler eklemek ve bu dikey kaydırma çubuğu ekleyerek, kontrol ekranda görüntülemek için yeterli alan yok öyle çoktur ki, her zaman. Bu .....

  2. MYSTIC söyledi:

    Peki biz tüm verileri görüntülemek için q biliyorum ama açıklamak miyim q ben modül saklanır nasıl ilgileniyorum kesme programı aunq vardır

  3. RCHARD diyor ki:

    Ben AYNI AMA İÇİN ÖRNEK DataGridView EĞER DEĞİL BU KONUDA ME IN yardımcı olabilir İSTİYORUM BİR SORU

    E-POSTA:
    richardramos789@hotmail.com
    Bana yardım IF YOU minnettar olacaktır

  4. Jorge diyor ki:

    Merhaba gibi,

    Benim sistemi uygulamak için bir liste görünümü ile bir şüphe var bak, ben doğru benim listview baskı bir POS sistemi koyarak ve benim txtbox başarı bir kodu girin ediyorum, benim sorum, aynı ürün kaydederken istediğim bir yerine yeni bir satır ekleyerek daha da eklenir ve Miktar sütununda sayısı artar.

    Ben açıklayacağım ya da eğer değil, ben 12345 eklerseniz Örneğin benim listview basılıyor, ama yeni bir satır üzerinde baskı yerleştirmek 12345 eklerseniz bir satır yazdırılır ancak sütun tutarı 2 artar Ben çok takdir ediyorum olduğunu bu soru bana yol.

    • Elisha diyor ki:

      Hayır çok size ne yapmak istediğinizi net var, ama bu örnek bakmak öneririz yararlı olabilir: http://www.solovb.net/index.php/2009/02/19/modificar-datos- of-a-listview /
      Tüm diğer sorularınız için benimle irtibata geçmekten çekinmeyin.

      Saygılar

    • Oscar diyor ki:

      Merhaba George, veri kalıcılığını içerir sormak ve 2 çözümleri bir tabloda belirli bir anahtar rütbesine ait bir sütunu güncelleştirmek için ne seçebilirsiniz: İlk ihtiyaç duyduğunuz alanları ile bir DB oluşturmak ve kullanmak o ya da SQL Server için adaptörü kullanarak MySQL ile de bağlantısı Visual Studio ile birlikte, başka bir şekilde bir dosyaya veri kaydetmek düz dosyalar geçer. txt ve daha sonra bazı veri okuma ve yeniden devam , bir sütunun rewquerida için değerini artırmak için ihtiyaç olarak iki seçenek için, ayrıca ihtiyaç durumuna göre bu değeri artırmak için bir işlevi başvurmalıdır. :)

  5. Jorge diyor ki:

    Elisha Hemen yanıt verdiğiniz için çok teşekkür ederim.

    Tamam ben açıklayacağım bak. Benim sütunları ile ürün açıklaması 12345678, benim listview de iyi bir gösteri olacağını, benim DB sahip ürünler eklemek ok, örneğin Coca-Cola, bu durumda benim TextBox barkod girdiğiniz bir TextBox var listview şunlardır:

    Ürün Kodu, Açıklama, Miktar, Satış Fiyatı, Varlık.

    Başka bir taktığınızda Sonra benim satıra ürün eklemek benim listview tür verileri dolu, ama eğer Coca-Cola kodu yeniden takın, ben yapmak istiyorum, bir sonraki satırda, gösterilen olduğunu Bir kez ürünün kendisi yerine yeni bir satır daha, sadece 2 Bu durumda karşılığında, benim sütun Miktar sayısını değiştirin.

    Ben bunu takdir ediyorum, bu soruyu cevaplamak daha fazla veya az diyebilirsiniz eğer, ben yapmak istiyorum nd daha fazlası.

    Teşekkürler

    • Elisha diyor ki:

      Eh, şimdi biraz daha hafiftir.

      Önce yeni bir satır ekler yok ilk şey zaten eklemek için çalışıyoruz kodunu girdikten olmadığını denetlemek için listview geçmektir.
      Örneğin, her biri için bir Yaptığın

      "Ben bir değişken var ben zaten kod bulundu belirtmek için düşünüyorum
      Dim Boolean = False olarak mevcut
      ListviewProductos.items yılında ListViewItem olarak her madde için
      Sonra eğer item.text = txtCodigo.text
      Zaten yüklü olduğu için 'buraya gelirseniz olduğunu
      Tamsayı = CType (item.subitm (2). metin, Integer) olarak cantidadAnterior loş
      item.subitem (2). cantidadAnterior + metin = CType (txtCantidad.text, Tamsayı)
      'Eğer bulursanız zaten var olduğunu fark
      = True var
      end if
      Sonraki

      Değil Sonra orada varsa
      'İşte takın sonra bulunamadı
      End if

      Eh, Espro hizmet ... Ben doğrudan buraya yazdım yana bir yazım hatası Terner ekarte edemez

      Ama kesinlikle size hizmet edecektir

  6. Jorge diyor ki:

    Tekrar teşekkürler,

    Sana Miktar sütunun değerini değiştirerek bu konuda çalışmış olsalardı, ne olur benim liste görünümü yazdırmak kod gibi görünüyor sana gösterecek bir MySQL veritabanı değerleri ayıklama olduğunu yorumladı bak

    Listview Private Sub ()
    As Integer Dim i
    Dim s As Integer
    As Integer Dim sayısı
    Çift olarak Subtotal Dim
    Yeni ListViewItem Dim listesi

    Yeni MySqlCommand Dim dizesi olarak ("ürünler SELECT * FROM WHERE ÜrünKodu = '" & txtCodigoBarras.Text & "'", con)

    cadena.ExecuteReader mysqldr = ()

    Iken mysqldr.Read ()
    list = listView1.Items.Add (txtCodigoBarras.Text.Trim)
    listar.SubItems.Add (CStr (mysqldr ("Açıklama")))
    listar.SubItems.Add (CStr (mysqldr ("Miktar")))
    listar.SubItems.Add (CStr (mysqldr ("PrecioVenta")))
    listar.SubItems.Add (CStr (mysqldr ("Stok")))
    Sonu da

    Dim Boolean = False olarak mevcut

    ListView1.Items yılında ListViewItem olarak her madde için
    Sonra eğer item.Text = txtCodigoBarras.Text
    Integer = CType CantidadAnterior Dim (listar.SubItems (2). Metin, Tamsayı)
    listar.SubItems (2). Text = cantidadAnterior + CType (mysqldr ("Miktar"), Integer)
    = True var
    End If
    Sonraki
    Değil Sonra orada varsa
    End If

    lblCantidadProd.Text = mysqldr.Item (3)
    lblPrecioUnidad.Text = mysqldr.Item (5)

    S için ListView1.Items.Count için = 0,0-1
    Subtotal = subtotal + ListView1.Items (ler). Alt kalemler (3). Metin
    Sonraki
    lbLSubTotal.Text = "$" & Format (Subtotal, "0,00")

    1 - i ListView1.Items.Count 0 = için
    counter = sayaç + ListView1.Items (i). alt kalemler (2). Metin
    Sonraki
    Me.lblContador.Text = sayacı

    () mysqldr.Close
    End Sub

    Ben geçirdiği kod böylece uygulamak ve aşağıdaki fotoğrafta sonuçları görmek:

    http://img193.imageshack.us/img193/4421/productosv.jpg~~V

  7. Jorge diyor ki:

    Arkadaş haha ​​üzgünüm kadar çok soru kırgın olmadığını, ama ben daha fazla veya daha az sorun buluyorum, örneğin ürün tanıtmak

    DORITOSNAC

    Ön sırada eklenir ve ben koyduğunuzda DORITOSNAC ikinci sıranın üzerinde yazılıdır fakat zaten ilk değişiklikleri miktar ile 2 değeri tanıttı vardı ve eşit bir 3 satırda tekrar girmek için geri yazdırılır ancak 1 satır ile 3 değerini değiştirir

    Sonra eğer txtCodigoBarras.Text = txtCodigoBarras.Text
    Dim Boolean = False olarak mevcut
    ListView1.Items yılında ListViewItem olarak her madde için
    Sonra eğer item.Text = txtCodigoBarras.Text
    Integer = CType CantidadAnterior Dim (item.SubItems (2). Metin, Tamsayı)
    item.SubItems (2). Text = cantidadAnterior + CType (lblCantidadProd.Text, Tamsayı)
    = True var
    End If
    Sonraki
    Değil Sonra orada varsa
    End If

    Ben eğer sizin bir açıklama minnettar olacağım şimdi olsun Bakalım.

  8. Jorge diyor ki:

    zaten destek çözüm almak için çok teşekkür çözmek elde:

    As Integer Dim sayısı
    J As Integer = 0 Me.ListView1.Items.Count için - 1
    Eğer Me.ListView1.Items (j). Alt kalemler (0). Sonra Metin = txtCodigoBarras.Text
    sayısı = CInt (Me.ListView1.Items (j). alt öğeler (2). Text) + 1
    Me.ListView1.Items (j). Alt kalemler (2). Text = sayımı
    Exit Sub

Yorum