首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的AutoScroll行为

奇怪的AutoScroll行为
EN

Stack Overflow用户
提问于 2012-02-27 11:19:58
回答 1查看 1.9K关注 0票数 1

Introduction

我编写了一个简单的用户控件。

该控件包含一个FlowLayoutPanel和一个按钮。

单击事件处理程序按钮如下:

代码语言:javascript
复制
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等于TopDown,因此控件的高度将增加。

我已经将用户控件放在窗体上,并将表单的AutoScroll属性设置为true。

此外,我还编写了以下布局事件处理程序:

代码语言:javascript
复制
private void MainForm_Layout(object sender, LayoutEventArgs e)
{
    uxSection.Width = this.ClientSize.Width;
}

(在Introduction部分的开头,uxSection是一个用户控件)

问题

以下是我正在做的事情:

步骤0。运行程序。

步骤1。添加几个标签,这样垂直滚动条就会出现。

步骤2。滚动到窗体的底部。

步骤3。水平调整窗体的大小。

如您所见,调整窗体大小后,滚动条位置不在底部(我希望它位于底部)。

所以问题是,我错过了什么?为什么滚动条会重置到顶部?

EN

回答 1

Stack Overflow用户

发布于 2012-02-28 13:50:48

之所以发生这种情况,是因为整个控件都是在调整大小的基础上重新绘制的。

您可能希望将滚动条的位置保存在变量中,以便在发生调整大小事件时,可以重置滚动条的位置,或者在触发调整大小事件时,将滚动条推到列表的底部,方法是使用列表中的项数来计算底部元素的位置,然后将滚动条推到该位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9464132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档