FlowLayoutPanel:更改内部项值/文本使其滚动错误

时间:2014-09-20 07:17:42

标签: c# winforms user-controls scroll flowlayoutpanel

FlowLayoutPanel中有一些用户控件。每个用户控件都有一个用户控件信息标签。

FlowLayoutPanel属性:

AutoScroll = true
WrapContents = false

通过单击用户控件(背景),标签信息将更新。但是如果在FlowLayoutPanel中有许多用户控件并且具有自动滚动属性,则单击项目时滚动会出错,看起来就像滚动条的顶部,您单击用户控件。

如何解决此滚动问题?


好的,这是一个演示GIF文件,它的第一部分演示滚动效果不好而不点击项目(这会改变值)第二部分演示了滚动在某处向下点击一个项目(更改了一个值)。< / p>

FlowLayoutPanel problem with inner items changes

  • 我应该说FlowLayoutPanel.PerformLayout()不适用于FlowLayoutPanel的内部项目。

***即使单击FlowLayoutPanel中的区域也会导致问题!我没有测试它。

1 个答案:

答案 0 :(得分:0)

解决!

通过将此代码放在usercontrol代码中来完成解决方案。

 private void ResControl_MouseDown(object sender, MouseEventArgs e)
 {
   this.Parent.Parent.Controls[0].Focus();
 }

它消除了对FlowLayoutPanel的关注。

  • 请注意代码中有两个Parent,因为必须捕获表单。 Usercontrols位于FlowLayoutPanel中,FlowLayoutPanel的格式为。