ListView的:项目始终可见

每当你增加新的项目ListView控件ListViewItems,这些都是如此众多的控制不会有足够的空间,在屏幕上显示,添加一个垂直滚动条。 这是完美的,默认情况下,没有新的项目加入的除外。

今天我要来说明如何解决这个小问题。

Visual Basic控件。锥净ListView的给我们一系列令人印象深刻的性能配置,所以,往往是未知的。

我想说明一个简单的例子。 为此,我们需要一种形式,一个ListView控件和一个按钮。

listviewItemSiempreVisible001

最关心我们的属性:

  • HideSelection:设置此为false,如果没有ListView控件具有焦点时,我们继续看看所选项目。
  • ListView1.FocusedItem.EnsureVisible()来强制所选项目要始终可见。

好了,现在如果代码:

    小组将Form1_Load(0 System.Object的,BYVAL e由于发件人)把手MyBase.Load
         ListView1.HideSelection =假
         ListView1.FullRowSelect =真
         ListView1.MultiSelect = FALSE
     END SUB

    私人小组中button1_Click(0 System.Object的,BYVAL e由于发件人)把手Button1.Click
        静态我作为整数= 0
         I + = 1
         ListView1.Items.Add(新的ListViewItem(“编号”&I))
         ListView1.Items(ListView1.Items.Count  -  1)。选择=真
         ListView1.Items(ListView1.Items.Count  -  1)。聚焦= TRUE

         ListView1.FocusedItem.EnsureVisible()
     END SUB

运行它应该看起来像这个图片显示:

listviewItemSiempreVisible002

这一切,如果此信息,帮助你,请留下评论。

11“列表视图:项目总是在上面”

  1. Bitacoras.com 说:

    信息Bitacoras.com ...

    在Bitacoras.com率:当你添加新项目ListView控件ListViewItems,而这些都是使众多的控制不会有足够的空间,在屏幕上显示,添加一个垂直滚动条。 这是......

  2. MYSTIC说:

    我们都知道q显示的数据,但我问:我有兴趣,如果他们能够解释如何存储在模块中的锯方案aunq

  3. RCHARD说:

    一个问题,我想相同,但举例的DataGridView如果没有,可以帮助ME IN这问题

    我的电子邮件:
    richardramos789@hotmail.com
    你将不胜感激,如果你帮我

  4. 豪尔赫说:

    你好等,

    看我有一个疑问与我的系统上实现一个ListView,我把POS系统,进入在我txtbox的成就在我的ListView打印的代码正确,我的问题是,我想注册时相同的产品,而不是增加一个新行被添加到它,并在数量列将增加数量。

    例如,如果我加12345,印在我的ListView,但如果我增加12345放在一个新行打印在连续印刷,但在列的金额增加至2,如果我不解释或可以指导我在这个问题上,我有我将不胜感激。

    • 以利沙说:

      我没有很清楚你想要做什么,但我建议你看一下这个例子可能会有帮助: http://www.solovb.net/index.php/2009/02/19/modificar-datos- -A-的ListView /
      任何进一步的问题,不要犹豫与我联系。

      问候

    • 奥斯卡说:

      乔治,你问什么涉及到数据的持久性和更新属于2解决方案的排名表中的一个特定的关键一列,你可以选择:首先创建一个领域,你需要的数据库和使用与MySQL的连接使用适配器或SQL Server与Visual Studio中包含的,另一种是通过平面文件,保存在一个文件中的数据。TXT,然后进行一些数据的读取和改写,因为你需要增加列rewquerida的价值这两个选项,你也应该适用于一个函数来增加这个值根据您需要的条件。 :)

  5. 豪尔赫说:

    以利沙非常感谢您的及时答复。

    OK看我会解释。 我有一个TextBox添加在其中,我在我的数据库产品,确定,例如,可口可乐,我在这种情况下,进入我的TextBox上的条形码,将12345678,在我的ListView争气的产品说明,我的专栏ListView的是:

    产品编号,描述,数量,销售价格,存在。

    然后添加我行的产品,是在我的ListView等数据,但如果我重新插入代码的可口可乐,在显示下一行,我喜欢做的事是,当你插入另一个一次只改变产品本身,而不是在一个新行,我列的数量,在这种情况下,交换,2。

    这是比第二我想要做的,如果我可以说或多或少地回答这个问题,我会很感激它。

    谢谢

    • 以利沙说:

      那么,现在是一个小打火机。

      你之前插入一个新行的第一件事是交叉的ListView检查您是否已经进入正试图插入你的代码。
      你做对每一笔,例如

      “我认为一个变量来指示是否我发现代码已经存在
      昏暗的存在为Boolean = FALSE
      对于每个ListViewItem的项目listviewProductos.items
      然后,如果item.text = txtCodigo.text
      “如果你来这里是因为它已经被载入
      cantidadAnterior昏暗如Integer = CType运算(item.subitm(2)。文本,整数)
      (2)item.subitem。cantidadAnterior +文本= CType运算(txtCantidad.text,整数)
      “如果你发现你注意到已经存在
      存在=真
      如果最后
      未来

      再就是如果不
      这里没有找到然后插入
      如果最后

      嗯,Espro服务...你不能排除,因为我写了一个错字Terner直接在这里

      但你一定会服务

  6. 豪尔赫说:

    再次感谢,

    看到你,如果我在这个问题上工作的数量列的值改变,会发生什么是我从我显示一个MySQL数据库中提取值的代码看起来像打印我的ListView

    ListView的私人小组()
    昏暗,我作为整数
    昏暗的小号作为整数
    昏暗的罪名将作为整数
    由于双小计点心
    昏暗的名单作为新的ListViewItem

    作为新MySqlCommand点心字符串(“select *从产品的ProductCode ='”&txtCodigoBarras.Text&“'”,CON)

    cadena.ExecuteReader mysqldr =()

    而mysqldr.Read()
    列表= listView1.Items.Add(txtCodigoBarras.Text.Trim)
    listar.SubItems.Add(CSTR(mysqldr(“说明”)))
    listar.SubItems.Add(CSTR(mysqldr(“数量”)))
    listar.SubItems.Add(CSTR(mysqldr(“PrecioVenta”)))
    listar.SubItems.Add(CSTR(mysqldr(“联交所”)))
    结束时

    昏暗的存在为Boolean = FALSE

    对于每个ListViewItem的在ListView1.Items项目
    然后,如果item.Text = txtCodigoBarras.Text
    CantidadAnterior DIM(listar.SubItems(2)。文本,整数)作为整数= CType运算
    。文本listar.SubItems(2)= cantidadAnterior + CType运算(mysqldr(“数量”),整数)
    存在=真
    结束如果
    未来
    再就是如果不
    结束如果

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

    为S = 0.0,要ListView1.Items.Count - 1
    小计= SUBTOTAL ListView1.Items(S)。子项目(3)文本
    未来
    lbLSubTotal.Text =“$”与格式(小计,“0.00”)

    对于i = 0 ListView1.Items.Count - 1
    计数器=计数器+ ListView1.Items(一)子项目(2)。文本
    未来
    Me.lblContador.Text =计数器

    mysqldr.Close()
    END SUB

    所以,我花了代码实施,并在下面的照片中看到的结果:

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

  7. 豪尔赫说:

    朋友哈哈,对不起,如果我不高兴这么多问题,但我发现或多或少的问题,例如产品介绍

    DORITOSNAC

    插在前排,当我把DORITOSNAC被印在第二排,但已经推出了第一款的变化,其值从数量到2印3行再次进入,但同样的从1行改变其值3

    然后,如果txtCodigoBarras.Text = txtCodigoBarras.Text
    昏暗的存在为Boolean = FALSE
    对于每个ListViewItem的在ListView1.Items项目
    然后,如果item.Text = txtCodigoBarras.Text
    CantidadAnterior DIM(item.SubItems(2)。文本,整数)作为整数= CType运算
    item.SubItems(2)。文本= cantidadAnterior + CType运算(lblCantidadProd.Text,整数)
    存在=真
    结束如果
    未来
    再就是如果不
    结束如果

    让我们来看看,如果我现在得到它,如果没有任何解释会很感激你的一部分。

  8. 豪尔赫说:

    已经取得了许多感谢您的支持,得到的解决方案解决:

    昏暗的罪名将作为整数
    对j = 0将作为整数Me.ListView1.Items.Count - 1
    ,如果Me.ListView1.Items(J)。子项目(0),然后点击文本txtCodigoBarras.Text
    计数= CINT(Me.ListView1.Items(J)。子项目(2)。文本)+ 1
    Me.ListView1.Items(J)。子项目(2)。文本=计数
    退出小组

评论