Listview: Item luôn luôn nhìn thấy

Bất cứ khi nào bạn thêm các mục mới vào một ListViewItems kiểm soát listview, và rất nhiều rằng sự kiểm soát không có đủ không gian để hiển thị chúng trên màn hình, thêm một thanh cuộn dọc. Điều này là hoàn hảo, ngoại trừ theo mặc định không phải là mặt hàng mới được thêm vào.

Hôm nay tôi muốn hiển thị như thế nào để giải quyết vấn đề nhỏ này.

Điều khiển thị giác cơ bản. Net listview hình nón cung cấp cho chúng ta một mảng ấn tượng của tài sản cho cấu hình, vì vậy thường không được biết.

Tôi muốn thể hiện một ví dụ đơn giản. Cho rằng chúng ta cần một hình thức, điều khiển listview và một nút.

listviewItemSiempreVisible001

Các tính chất quan tâm nhất chúng tôi là:

  • HideSelection: Thiết lập này để sai nếu không kiểm soát listview có sự tập trung, chúng tôi tiếp tục xem những gì các sản phẩm được chọn.
  • ListView1.FocusedItem.EnsureVisible () để buộc các sản phẩm được chọn là luôn luôn nhìn thấy.

Vâng, bây giờ nếu mã:

     Private Sub Form1_Load (ByVal sender As System.Object, ByVal e Như 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 Như System.EventArgs) Handles Button1.Click
         Tĩnh i As Integer = 0
         i + = 1
         ListView1.Items.Add (New ListViewItem ("Mã số" & i))
         ListView1.Items (ListView1.Items.Count - 1). Chọn = True
         ListView1.Items (ListView1.Items.Count - 1). Tập trung = True

         ListView1.FocusedItem.EnsureVisible ()
     End Sub

Chạy nó trông giống như những gì được thể hiện trong hình ảnh này:

listviewItemSiempreVisible002

Đó là tất cả, nếu thông tin này đã giúp bạn, xin vui lòng để lại một bình luận.

11 Responses to "Listview: Item luôn luôn trên đầu"

  1. Thông tin Bitacoras.com ...

    Tỷ giá trong Bitacoras.com: Bất cứ khi nào bạn thêm các mục mới vào một ListViewItems kiểm soát listview, và rất nhiều rằng sự kiểm soát không có đủ không gian để hiển thị chúng trên màn hình, thêm một thanh cuộn dọc. Là .....

  2. Thần bí nói:

    Vâng, chúng tôi đều biết q để hiển thị dữ liệu nhưng tôi q tôi quan tâm nếu họ có thể giải thích làm thế nào được lưu trữ trong một module là cưa aunq chương trình

  3. RCHARD nói:

    CÂU HỎI TÔI MUỐN CÓ CÙNG NHƯNG ví dụ DataGridView NẾU KHÔNG CÓ THỂ HELP ME trong vấn đề này

    Email của tôi:
    richardramos789@hotmail.com
    BẠN biết ơn nếu bạn giúp tôi

  4. Jorge cho biết:

    Xin chào như vậy,

    Nhìn tôi có một nghi ngờ với một listview để thực hiện trên hệ thống của tôi, tôi đặt cùng một hệ thống POS và nhập một mã trong thành tích txtbox của tôi trong in listview của tôi một cách chính xác, câu hỏi của tôi là tôi muốn khi đăng ký cùng một sản phẩm, thay vì thêm một hàng mới được thêm vào nó và trong cột Số lượng sẽ tăng số lượng.

    Ví dụ nếu tôi thêm 12.345, được in trong listview của tôi, nhưng nếu tôi thêm 12.345 để đặt in trên một dòng mới được in trong một hàng, nhưng trong cột số lượng tăng đến 2, không phải nếu tôi giải thích hoặc có thể hướng dẫn cho tôi trong câu hỏi này mà tôi có, tôi sẽ đánh giá cao rất nhiều.

    • Elisha nói:

      Tôi đã rất không rõ ràng những gì bạn muốn làm, nhưng tôi đề nghị bạn nên nhìn vào ví dụ này có thể hữu ích: http://www.solovb.net/index.php/2009/02/19/modificar-datos- of-a-listview /
      Bất kỳ câu hỏi nào khác không ngần ngại liên hệ với tôi.

      Kính trọng

    • Oscar cho biết:

      George, những gì bạn yêu cầu liên quan đến việc kiên trì dữ liệu và cập nhật một cột thuộc cấp bậc của một khóa cụ thể trong một bảng bằng 2 giải pháp, bạn có thể lựa chọn: đầu tiên bạn tạo một DB với các lĩnh vực mà bạn cần và sử dụng một kết nối hoặc với MySQL bằng cách sử dụng các bộ chuyển đổi cho nó hoặc SQL Server được bao gồm với Visual Studio, cách khác là thông qua các tập tin phẳng lưu dữ liệu trong một tập tin. txt và sau đó tiến hành đọc và viết lại một số dữ liệu , cho cả hai lựa chọn là bạn cần phải tăng giá trị cho một rewquerida cột, bạn cũng nên áp dụng một chức năng để tăng giá trị này dựa trên điều kiện bạn yêu cầu. :)

  5. Jorge cho biết:

    Elisha cảm ơn bạn rất nhiều vì phản ứng nhanh chóng của bạn.

    Ok nhìn tôi sẽ giải thích. Tôi có một TextBox trong đó thêm các sản phẩm tôi có trong DB của tôi, ok ví dụ, Coca-cola, tôi nhập vào mã vạch trên TextBox của tôi trong trường hợp này sẽ được 12345678, hiển thị tốt trong listview của tôi mô tả sản phẩm với các cột của tôi listview là:

    Mã sản phẩm, mô tả, Số lượng, Giá bán, tồn tại.

    Sau đó, thêm sản phẩm hàng của tôi là đầy đủ các dữ liệu đó trong listview của tôi, nhưng nếu tôi lại chèn mã của coca-cola, được hiển thị trong một dòng kế tiếp, mà tôi muốn làm là khi bạn chèn một Một khi bản thân sản phẩm hơn là trong một hàng mới, chỉ cần thay đổi số lượng cột của tôi, trong trường hợp này trao đổi 2.

    Đó là thứ tôi muốn làm, nếu tôi có thể nói nhiều hơn hoặc ít hơn trả lời câu hỏi này, tôi đánh giá cao nó.

    Cảm ơn

    • Elisha nói:

      Vâng, bây giờ là một chút nhẹ hơn.

      Điều đầu tiên trước khi bạn chèn thêm một dòng mới là qua listview để kiểm tra xem bạn đã nhập vào mã bạn đang cố gắng để chèn.
      Mà bạn làm Đối với mỗi ví dụ

      "Tôi nghĩ rằng một biến để chỉ ra cho dù tôi tìm thấy mã đã tồn tại
      Dim tồn tại As Boolean = False
      Đối với mỗi mục là ListViewItem trong listviewProductos.items
      Sau đó, nếu item.text = txtCodigo.text
      "Nếu bạn đến đây là bởi vì nó đã được nạp
      cantidadAnterior mờ như Integer = CType (item.subitm (2) văn bản, Integer)
      item.subitem (2) cantidadAnterior +. text = CType (txtCantidad.text, Integer)
      Nếu bạn tìm thấy bạn nhận thấy rằng đã tồn tại
      tồn tại = True
      kết thúc nếu
      Tiếp theo

      Nếu không Sau đó, có
      Ở đây nó không được tìm thấy sau đó chèn
      Cuối nếu

      Vâng, Espro phục vụ ... bạn không thể loại trừ một Terner lỗi đánh máy kể từ khi tôi đã viết nó trực tiếp ở đây

      Nhưng chắc chắn bạn sẽ phục vụ

  6. Jorge cho biết:

    Cảm ơn một lần nữa,

    Bạn nhận xét rằng nếu tôi đã làm việc về vấn đề đó bằng cách thay đổi giá trị của cột Số lượng, những gì xảy ra là tôi đang giải nén các giá trị từ một cơ sở dữ liệu MySQL tôi cho thấy trông giống như mã in listview của tôi

    Listview Private Sub ()
    Dim i As Integer
    Dim s Như Integer
    Dim count As Integer
    Tổng số tiền Dim Như đôi
    Danh sách Dim As New ListViewItem

    Là mới Dim MySqlCommand chuỗi ("SELECT * FROM sản phẩm WHERE ProductCode = '" & txtCodigoBarras.Text & "'", con)

    cadena.ExecuteReader mysqldr = ()

    Trong khi mysqldr.Read ()
    list = listView1.Items.Add (txtCodigoBarras.Text.Trim)
    listar.SubItems.Add (CStr (mysqldr ("Mô tả")))
    listar.SubItems.Add (CStr (mysqldr ("Số lượng")))
    listar.SubItems.Add (CStr (mysqldr ("PrecioVenta)))
    listar.SubItems.Add (CStr (mysqldr ("chứng khoán")))
    Cuối Trong khi

    Dim tồn tại As Boolean = False

    Đối với mỗi mục Như ListViewItem ListView1.Items
    Sau đó, nếu item.Text = txtCodigoBarras.Text
    CantidadAnterior Dim As Integer = CType (listar.SubItems (2) Văn bản, Integer)
    listar.SubItems (2). Tiêu đề = cantidadAnterior + CType (mysqldr ("Số lượng"), Integer)
    tồn tại = True
    Cuối Nếu
    Tiếp theo
    Nếu không Sau đó, có
    Cuối Nếu

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

    Đối với s = 0,0 ListView1.Items.Count - 1
    Tổng số tiền = Tổng số tiền + ListView1.Items (s) subitems (3). Tiêu đề
    Tiếp theo
    lbLSubTotal.Text = "$" & Format (tổng, "0.00")

    Đối với i = 0 Để ListView1.Items.Count - 1
    counter = counter + ListView1.Items (i) subitems (2). Tiêu đề
    Tiếp theo
    Me.lblContador.Text = truy cập

    mysqldr.Close ()
    End Sub

    Các mã mà tôi đã dành để thực hiện nó và xem kết quả trong các bức ảnh sau đây:

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

  7. Jorge cho biết:

    Bạn bè haha ​​xin lỗi nếu tôi khó chịu với câu hỏi rất nhiều, nhưng tôi đang tìm kiếm nhiều hơn hoặc ít hơn vấn đề, ví dụ giới thiệu các sản phẩm

    DORITOSNAC

    Được lắp ở hàng ghế đầu và khi tôi đặt DORITOSNAC được in trên hàng thứ hai nhưng đã được giới thiệu những thay đổi đầu tiên giá trị của nó từ số lượng sang 2 và được in lại để nhập vào một lần nữa trên một hàng 3 nhưng cũng không kém các từ 1 hàng thay đổi giá trị của nó đến 3

    Sau đó, nếu txtCodigoBarras.Text = txtCodigoBarras.Text
    Dim tồn tại As Boolean = False
    Đối với mỗi mục Như ListViewItem ListView1.Items
    Sau đó, nếu item.Text = txtCodigoBarras.Text
    CantidadAnterior Dim As Integer = CType (item.SubItems (2) Văn bản, Integer)
    item.SubItems (2). Tiêu đề = cantidadAnterior + CType (lblCantidadProd.Text, Integer)
    tồn tại = True
    Cuối Nếu
    Tiếp theo
    Nếu không Sau đó, có
    Cuối Nếu

    Hãy xem nếu tôi nhận được nó ngay bây giờ nếu không có bất kỳ lời giải thích trên một phần của bạn sẽ được biết ơn.

  8. Jorge cho biết:

    đã đạt được giải quyết rất nhiều nhờ hỗ trợ của bạn nhận được các giải pháp:

    Dim count As Integer
    Đối với j As Integer = 0 Me.ListView1.Items.Count - 1
    Nếu Me.ListView1.Items (j) subitems (0). Sau đó, văn bản. TxtCodigoBarras.Text
    count = CInt (Me.ListView1.Items (j). subitems (2). Text) + 1
    Me.ListView1.Items (j). Subitems (2) Text = count.
    Exit Sub

Bình luận