简介
我编写了一个简单的用户控件。
控件包含一个FlowLayoutPanel和一个按钮。
按钮单击事件处理程序如下:
private void uxAdd_Click(object sender, EventArgs e)
{
count++;
Label label = new Label();
label.Text = "Label " + count.ToString();
uxFlowLayout.Controls.Add(label);
}
Add
按钮会在FlowLayoutPanel
上添加标签,因为FlowLayoutPanel.AutoSize
和控件的AutoSize
属性等于true,FlowLayoutPanel.FlowDirection
等于{ {1}}控件的高度会增加。
我已将用户控件放在表单上,并将表单的TopDown
属性设置为true。
我还编写了以下 Layout 事件处理程序:
AutoScroll
( uxSection 是我在简介部分开头讨论的用户控件)
问题
以下是我正在做的事情:
第0步。运行程序。
第1步。添加一些标签,以便显示垂直滚动条。
第2步。滚动到表单底部。
第3步。水平调整表单大小。
正如您所看到的,在调整表单大小后,滚动条位置不在底部(我希望它位于底部)。
所以问题是,我错过了什么?为什么滚动条会重置到顶部?
答案 0 :(得分:0)
这是因为在调整大小时会重新绘制整个控件。
您需要将滚动条的位置保存在变量中,以便在调整大小事件时可以重置滚动条的位置,或者您想要将滚动条推到列表的底部通过使用列表中的项目数来计算底部元素的位置然后将滚动条推到该位置时触发resize事件。