1

我有一个按钮,我希望它始终位于表单上的同一位置(表单可见部分的左上角)。

这是示例:

在此处输入图像描述

因此,当我垂直或水平滚动时,按钮应始终位于左上角并且应该可见。我应该怎么做才能修复它?

4

2 回答 2

2

我猜你正在使用 Form 的 AutoScroll 功能。

PanelwithAutoScroll = true放在表单上并使用它的滚动怎么样?然后,您将能够在表单上放置一个按钮,但在此可滚动面板上。因此,滚动标尺将滚动视图面板内容,但按钮将保持固定在表单上。

如果您不想添加另一个容器组件,则可以添加Scroll事件处理程序并调整按钮位置以响应表单滚动。ScrollEventArgs参数有ScrollOrientation,NewValueOldValue来计算控件的新 X/Y 位置。

于 2013-05-17T13:36:27.467 回答
0

在表单上,​​放置 aPanel并设置:其Dock属性为FillAutoScroll属性为True

您将所有其他控件放置在此面板中,而不是您想要保持可见的按钮。右键单击面板-> 发送到后台。将Panel调整大小以匹配表格;滚动只会在面板中发生,因此按钮将始终保持可见(您可以在其上设置 Anchor:Left,Top)

为了能够滚动(使用鼠标滚轮),焦点必须在可滚动区域内的控件上(在 内Panel),而不是按钮上。防止按钮获得焦点:设置TabStopfalseon it;此外,当它被单击时,您还必须通过调用将焦点设置在另一个控件上:

this.SelectNextControl(the_button, true, true, true, true);

于 2013-05-17T14:04:27.193 回答