gpt4 book ai didi

c# - 如何判断水平滚动条是否显示在列表框上

转载 作者:行者123 更新时间:2023-11-30 17:04:07 24 4
gpt4 key购买 nike

我正在将项目添加到 C# 列表框中,并希望始终将其滚动到添加到列表中的最后一个项目,以便它可见。该列表通常会超出可用空间,因此会显示垂直滚动条,并且当​​用户可以移动它时,我需要用新项目强制它再次跳到末尾。我发现的唯一有用的方法是将 TopIndex 属性与框中的行一起使用 - 可以显示的行数。我可以使用下面的代码正常工作,除非其中一行太长,在这种情况下,水平滚动条会占用大约最后 2 个项目的空间。如果我能弄清楚是否显示了水平条,我可以更改计算中的行数来解决它。

        LB1.Items.Add(strText);
LB1.TopIndex = Math.Max(0,lbXmlMsg.Items.Count - 10); // 10 rows visible

这似乎只是确保新项目可见的大量工作。我在这里遗漏了一些明显的东西吗?

最佳答案

您可以通过调用 检查水平滚动条是否可见

LB1.HorizontalScrollbar

<罢工> 根据 OP 的评论,以上内容无效。

我还要说硬编码数字是不好的做法,你可以这样做: How to scroll to bottom of ListBox?

然后这是一种自动滚动的方式 http://www.csharp-examples.net/autoscroll/

我还没有尝试过这些,但它们应该有效。

如果你切换到 ListView,它有一个 EnsureVisible完全可以完成您想要的工作的功能。

关于c# - 如何判断水平滚动条是否显示在列表框上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com