我正在向 C# 的列表框中添加项目,希望它总是滚动到列表中最后一个添加的项目,以便用户可以看到。由于列表通常超出可用空间,因此垂直滚动条将显示出来,而且由于用户可以移动滚动条,我需要强制它跳到最后一个项目。我发现唯一有用的方法是使用 TopIndex 属性和列表中的行 - 可显示的行数。我已经使用下面的代码使其正常工作,除非其中一行过长,这时水平滚动条会占用大约最后两个项目的空间。如果我能找出水平滚动条是否被显示,我可以更改计算中的行数来考虑它的影响。
这似乎是很多工作,只是为了确保一个新项目可见。我是否漏掉了什么显而易见的东西?
LB1.Items.Add(strText);
LB1.TopIndex = Math.Max(0,lbXmlMsg.Items.Count - 10); // 10 rows visible
这似乎是很多工作,只是为了确保一个新项目可见。我是否漏掉了什么显而易见的东西?