【问题标题】:How to auto scroll down in WinForms ListView control when update new item?更新新项目时如何在 WinForms ListView 控件中自动向下滚动?
【发布时间】:2011-01-02 03:01:12
【问题描述】:

更新新项目时如何在ListView控件中自动向下滚动?

我试过了

listView1.Focus();
listView1.Items[listView1.Items.Count - 1].Selected = true;

但这不起作用。

【问题讨论】:

  • WinForms? WPF?请说明...

标签: c# winforms listview


【解决方案1】:

试试

listView1.Items[listView1.Items.Count - 1].EnsureVisible();

【讨论】:

  • 我可以补充一点,这是一个仅限 Winforms 的解决方案,EnsureVisible 在 WPF ListView 上不存在。之所以这么说,是因为我在谷歌搜索“WPF ListView 自动滚动到底部”时点击了这个页面。
  • 听起来很公平。您是否有指向 WPF 解决方案的链接,以帮助其他人出于同样的原因获得此答案?
  • 问题似乎是由于无法通过属性访问 WPF ListView 上的内置 ScrollViewer,我现在只是在测试一个解决方案,并将其写在我的博客上,链接到跟随。
  • 终于有时间写这篇博文了,这里有一个 WPF 解决方案供参考。 dutton.me.uk/2013/08/13/…
  • @Dutts 具有讽刺意味的是,在 cmets 中提到 W P F 的次数越多,谷歌就越有可能错误地列出这个问题。搜索引擎的上下文感知能力不是很强。
【解决方案2】:

老式的解决方案:

 ListView1.SetFocus;
 PostMessage(ListView1.Handle, WM_KEYDOWN, VK_DOWN, 0);

【讨论】:

    【解决方案3】:

    其中 x 是 int,是列表中您要查看的项目的整数

    listView1.Items[x].Focus();
    listView1.Items[x].Selected = true;
    listView1.EnsureVisible(x);
    

    【讨论】:

      【解决方案4】:

      另一种可能的解决方案:

      listview1.TopItem = listView1.Items[listView1.Items.Count - 1];

      【讨论】:

        【解决方案5】:

        也许

        listView1.Items[listView1.Items.Count - 1].Selected = false;
        listView1.Items[listView1.Items.Count - 1].Selected = true;
        

        【讨论】:

          【解决方案6】:

          Codesleuth 对列表中最后一项调用 EnsureVisible() 的回答仅在表单 OnShown() 事件期间调用时对我有效。

          我尝试在构造函数中执行此操作,我正在填充我的 ListView,但什么也没发生。但是,在 OnShown() 期间执行此操作是一种享受。

          希望这会有所帮助。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-06-27
            • 2021-11-07
            • 2019-06-14
            • 1970-01-01
            • 1970-01-01
            • 2016-09-11
            • 2015-01-20
            • 2022-08-19
            相关资源
            最近更新 更多