我正在将项目添加到 ac# 列表框中,并希望始终将其滚动到添加到列表中的最后一个项目,以便它可见。该列表通常会超出可用空间,因此将显示垂直滚动条,并且当用户可以移动它时,我需要使用新项目再次强制它跳转到末尾。我发现的唯一有用的方法是将 TopIndex 属性与框中的行一起使用 - 可以显示的行数。我使用下面的代码可以正常工作,除非其中一行太长,在这种情况下,水平滚动条会占用大约最后 2 个项目的空间。如果我能弄清楚是否显示了水平条,我可以改变计算中的行数来解释它。
LB1.Items.Add(strText);
LB1.TopIndex = Math.Max(0,lbXmlMsg.Items.Count - 10); // 10 rows visible
要确保新项目可见,这似乎需要做很多工作。我在这里错过了什么吗?