【发布时间】:2021-07-21 23:09:30
【问题描述】:
我正在创建一个使用FlowLayoutPanel 来显示图像缩略图的图像浏览器。请参阅动画 GIF,它显示了我如何向下滚动面板、切换到另一个窗口,然后返回到导致 FlowLayoutPanel 滚动回顶部的表单。我无法想象它为什么会这样做。
另外,我似乎可以通过单击面板来设置滚动位置。当表单失去焦点并重新获得焦点时,它会滚动回我单击的最后一个 Y 位置。
为什么会出现这种行为,我该如何防止它发生?
【问题讨论】:
-
这些控件(缩略图)是否有某种焦点?...导致它跳回任何焦点控件?
-
@Idle_Mind 看起来像。所有这些图标都是包含 PictureBox 和标签的自定义控件。我在控件本身上处理了
GotFocus事件,当我单击它时它被触发。不过,我想知道为什么它只在表单失去/重新获得焦点时才想要滚动回具有焦点的控件 -
@Idle_Mind 我还要补充一点,除非我首先与流程面板中的某些内容进行交互,否则它不会表现出这种行为。
-
也许可以尝试扩展
FlowLayoutPanel并覆盖ScrollToControl(Control activeControl)方法,例如:stackoverflow.com/questions/32512355/… -
@Loathing 我会认为这是最后的手段。真的不想通过创建一个从 FlowLayoutPanel 继承的控件来重构我的表单和 c# 中的代码,只是为了覆盖单个属性。
标签: c# .net winforms flowlayoutpanel