private void button2_Click(object sender, EventArgs e)
{
listBox1.AutoScrollOffset.Y = 10;
}
我试图在运行时使用代码手动设置垂直滚动条的位置。这是我尝试过的方法。
.Y属性表示:“获取或设置此点的Y坐标”。为什么这不会编译并给我一个异常:
“错误1:无法修改‘System.Windows.Forms.Control.AutoScrollOffset’的返回值,因为它不是一个变量。”
private void button2_Click(object sender, EventArgs e)
{
var offset = listBox1.AutoScrollOffset;
offset.Y = 10; // Compiles, but doesn't work
}
如果您需要将属性分配为Point类型的值,请按以下步骤操作:
private void button2_Click(object sender, EventArgs e)
{
listBox1.AutoScrollOffset = new Point(listBox1.AutoScrollOffset.X, 10);
}
这并不能实际滚动列表框,它只会影响控件在可滚动容器(如Panel)中嵌入时的位置。请参考ScrollControlIntoView方法。
请改为分配TopIndex属性。
http://moiashvin-tech.blogspot.com/2008/04/scroll-listbox-programmatically.html
不是通过坐标控制它,而是通过列表中的项目控制它。listBox1.AutoScrollOffset = new Point(listBox1.AutoScrollOffset.X, 10);