ListView: Item selalu terlihat

Setiap kali Anda menambahkan item baru ke ListViewItems kontrol ListView, dan ini adalah begitu banyak sehingga kontrol tidak memiliki cukup ruang untuk menampilkan mereka di layar, menambahkan scroll bar vertikal. Ini adalah sempurna, kecuali bahwa secara default tidak bahwa item baru ditambahkan.

Hari ini saya ingin menunjukkan bagaimana memecahkan masalah kecil ini.

Kontrol dasar visual. Kerucut bersih ListView memberi kita jajaran properti untuk konfigurasi, sehingga sering tidak diketahui.

Saya ingin menunjukkan sebuah contoh sederhana. Untuk itu kita perlu bentuk, kontrol ListView dan tombol.

listviewItemSiempreVisible001

Sifat yang paling menarik bagi kami adalah:

  • HideSelection: Pengaturan ini ke false jika tidak ada kontrol ListView memiliki fokus, kami terus untuk melihat apa item yang dipilih.
  • ListView1.FocusedItem.EnsureVisible () untuk memaksa item yang dipilih untuk selalu terlihat.

Nah, sekarang jika kode:

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

     Private Sub Button1_Click (ByVal sender Sebagai System.Object, ByVal e Sebagai System.EventArgs) Menangani Button1.Click
         Static i As Integer = 0
         i + = 1
         ListView1.Items.Add (New ListViewItem ("Item nomor" & i))
         ListView1.Items (ListView1.Items.Count - 1). Terpilih Benar =
         ListView1.Items (ListView1.Items.Count - 1). Fokus = True

         ListView1.FocusedItem.EnsureVisible ()
     End Sub

Menjalankan seharusnya terlihat seperti yang ditampilkan dalam gambar ini:

listviewItemSiempreVisible002

Itu saja, jika informasi ini membantu Anda, silakan tinggalkan komentar.

11 Responses to "ListView: Item selalu di atas"

  1. Bitacoras.com mengatakan:

    Informasi Bitacoras.com ...

    Laju Bitacoras.com: Setiap kali Anda menambahkan item baru ke ListViewItems kontrol ListView, dan ini adalah begitu banyak sehingga kontrol tidak memiliki cukup ruang untuk menampilkan mereka di layar, menambahkan scroll bar vertikal. Ini .....

  2. MISTIKUS mengatakan:

    Yah kita semua tahu q untuk menampilkan data tetapi saya q saya tertarik jika mereka dapat menjelaskan bagaimana disimpan dalam modul adalah menggergaji program aunq

  3. RCHARD mengatakan:

    PERTANYAAN SAYA INGIN YANG SAMA TAPI UNTUK CONTOH DataGridView JIKA TIDAK BISA HELP ME DALAM MASALAH INI

    EMAIL SAYA:
    richardramos789@hotmail.com
    ANDA akan berterima kasih jika Anda membantu saya

  4. Jorge mengatakan:

    Halo tersebut,

    Lihatlah Saya memiliki keraguan dengan ListView untuk menerapkan pada sistem saya, saya menyusun sebuah sistem POS dan memasukkan kode dalam prestasi txtbox saya di cetak ListView saya dengan benar, pertanyaan saya adalah bahwa saya ingin saat mendaftar produk yang sama, daripada menambahkan baris baru ditambahkan untuk itu dan di kolom Jumlah akan meningkat nomor tersebut.

    Sebagai contoh jika saya menambahkan 12345, dicetak di ListView, tapi jika saya menambahkan 12345 untuk menempatkan mencetak pada baris baru dicetak dalam satu baris tetapi dalam jumlah kolom meningkat menjadi 2, jika saya tidak menjelaskan atau bisa membimbing saya dalam pertanyaan yang saya miliki saya akan sangat menghargai.

    • Elisa mengatakan:

      Aku tidak sangat jelas apa yang ingin Anda lakukan, tapi saya sarankan bahwa Anda melihat contoh ini mungkin membantu: http://www.solovb.net/index.php/2009/02/19/modificar-datos- of-a-ListView /
      Pertanyaan lebih lanjut jangan ragu untuk menghubungi saya.

      Salam

    • Oscar mengatakan:

      Halo George, apa yang Anda minta melibatkan ketekunan data dan mengupdate kolom milik pangkat kunci tertentu dalam sebuah tabel dengan 2 solusi yang dapat Anda pilih: pertama Anda membuat DB dengan bidang yang Anda butuhkan dan menggunakan koneksi baik dengan MySQL menggunakan adaptor untuk itu atau SQL Server disertakan dengan Visual Studio, cara lain adalah melalui file datar yang menyimpan data dalam file. txt dan kemudian dilanjutkan ke membaca dan menulis ulang dari beberapa data , untuk kedua pilihan yang Anda butuhkan untuk meningkatkan nilai untuk rewquerida kolom, Anda juga harus menerapkan fungsi untuk meningkatkan nilai ini berdasarkan kondisi yang Anda butuhkan. :)

  5. Jorge mengatakan:

    Elisa terima kasih banyak untuk respon prompt Anda.

    Ok melihat saya akan menjelaskan. Aku punya TextBox yang menambahkan produk saya di DB saya, ok untuk contoh, Coca-cola, saya masukkan kode bar di TextBox saya dalam kasus ini akan 12345678, menunjukkan baik dalam ListView saya deskripsi produk dengan kolom saya ListView adalah:

    Kode Produk, Keterangan, Jumlah, Harga Jual, Keberadaan.

    Kemudian tambahkan produk ke baris saya penuh dengan data seperti di ListView saya, tetapi jika aku masukkan kembali kode coca-cola, akan ditampilkan di baris berikutnya, yang saya ingin lakukan adalah bahwa ketika Anda memasukkan lain Setelah produk itu sendiri bukan di baris baru, hanya mengubah jumlah Jumlah kolom saya, dalam pertukaran kasus ke 2.

    Itu lebih dari nd ingin saya lakukan, jika saya bisa mengatakan lebih atau kurang menjawab pertanyaan ini saya akan sangat menghargainya.

    Terima kasih

    • Elisa mengatakan:

      Nah, sekarang adalah sedikit lebih ringan.

      Hal pertama yang Anda lakukan sebelum memasukkan baris baru adalah untuk menyeberang ListView untuk memeriksa apakah Anda telah memasukkan kode Anda mencoba untuk memasukkan.
      Bahwa Anda melakukan Untuk Setiap, misalnya

      "Saya pikir variabel untuk menunjukkan apakah saya menemukan kode sudah ada
      Dim ada As Boolean = False
      Untuk setiap item sebagai ListViewItem di listviewProductos.items
      Kemudian jika item.text = txtCodigo.text
      "Jika Anda datang ke sini adalah karena sudah dimuat
      cantidadAnterior redup sebagai Integer = CType (item.subitm (2) teks,. Integer)
      item.subitem (2) cantidadAnterior +. text = CType (txtCantidad.text, Integer)
      'Jika Anda menemukan Anda melihat bahwa sudah ada
      ada = True
      akhir jika
      Berikutnya

      Jika Tidak Lalu ada
      "Di sini tidak ditemukan kemudian masukkan
      Akhir jika

      Nah, Espro melayani ... Anda tidak bisa mengesampingkan salah ketik terner sejak saya menulis secara langsung di sini

      Tapi tentunya Anda akan melayani

  6. Jorge mengatakan:

    Thanks again,

    Sampai jumpa berkomentar bahwa jika saya telah bekerja pada isu yang dengan mengubah nilai dari kolom Jumlah, apa yang terjadi adalah saya mengekstraksi nilai dari database MySQL saya menunjukkan terlihat seperti kode mencetak saya ListView

    Private Sub ListView ()
    Dim i As Integer
    Dim s As Integer
    Dim jumlah As Integer
    Subtotal Dim As Double
    Dim daftar As New ListViewItem

    Sebagai New String Dim MySqlCommand ("SELECT * FROM produk DIMANA ProductCode = '" & txtCodigoBarras.Text & "'", con)

    cadena.ExecuteReader mysqldr = ()

    Sementara mysqldr.Read ()
    list = listView1.Items.Add (txtCodigoBarras.Text.Trim)
    listar.SubItems.Add (CSTR (mysqldr ("Keterangan")))
    listar.SubItems.Add (CSTR (mysqldr ("Jumlah")))
    listar.SubItems.Add (CSTR (mysqldr ("PrecioVenta")))
    listar.SubItems.Add (CSTR (mysqldr ("Saham")))
    Akhir Sementara

    Dim ada As Boolean = False

    Untuk Setiap item Sebagai ListViewItem Dalam ListView1.Items
    Kemudian jika item.Text = txtCodigoBarras.Text
    CantidadAnterior Dim As Integer = CType (listar.SubItems (2) Teks,. Integer)
    listar.SubItems (2). Text = cantidadAnterior + CType (mysqldr ("Jumlah"), Integer)
    ada = True
    End If
    Berikutnya
    Jika Tidak Lalu ada
    End If

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

    Untuk s = 0,0 Untuk ListView1.Items.Count - 1
    Subtotal Subtotal = + ListView1.Items (s) subitems (3).. Teks
    Berikutnya
    lbLSubTotal.Text = "$" & Format (Subtotal, "0.00")

    Untuk i = 0 Untuk ListView1.Items.Count - 1
    counter = counter + ListView1.Items (i) subitems (2).. Teks
    Berikutnya
    Me.lblContador.Text = counter

    mysqldr.Close ()
    End Sub

    Kode yang saya menghabiskan begitu menerapkannya dan lihat hasilnya di foto berikut:

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

  7. Jorge mengatakan:

    Teman haha ​​maaf jika saya marah dengan begitu banyak pertanyaan, tapi aku menemukan sedikit banyak masalah, misalnya memperkenalkan produk

    DORITOSNAC

    Dimasukkan di baris depan dan ketika saya menempatkan DORITOSNAC dicetak pada baris kedua tetapi telah memperkenalkan perubahan pertama nilai dari kuantitas ke 2 dan dicetak kembali untuk masuk lagi pada baris 3 tetapi juga para dari 1 baris mengubah nilainya ke 3

    Kemudian jika txtCodigoBarras.Text = txtCodigoBarras.Text
    Dim ada As Boolean = False
    Untuk Setiap item Sebagai ListViewItem Dalam ListView1.Items
    Kemudian jika item.Text = txtCodigoBarras.Text
    CantidadAnterior Dim As Integer = CType (item.SubItems (2) Teks,. Integer)
    item.SubItems (2). Text = cantidadAnterior + CType (lblCantidadProd.Text, Integer)
    ada = True
    End If
    Berikutnya
    Jika Tidak Lalu ada
    End If

    Mari kita lihat apakah saya mendapatkan sekarang jika tidak ada penjelasan pada bagian Anda akan berterima kasih.

  8. Jorge mengatakan:

    sudah dicapai memecahkan banyak terima kasih atas dukungan Anda mendapatkan solusi:

    Dim jumlah As Integer
    Untuk j As Integer = 0 Untuk Me.ListView1.Items.Count - 1
    Jika Me.ListView1.Items (j) subitems (0). Kemudian Teks. = TxtCodigoBarras.Text
    hitung = CInt (Me.ListView1.Items (j). subitems (2). Teks) + 1
    Me.ListView1.Items (j). Subitems (2) Teks = count.
    Keluar Sub

Komentar