我有一个应用程序,它使用FlowLayoutPanel,里面有很多自定义UserControls。 Custom UserControls包含一个Label。
问题: 更新Label后,FlowLayoutPanel会自动将其滚动到视图中(类似于FlowLayoutPanel.ScrollControlIntoView()函数)。
这是使FlowLayoutPanel滚动的代码片段:
private void DownloadChanged(Object sender, DownloadProgressChangedEventArgs e)
{
progressDownload.Value = e.ProgressPercentage;
lblDownloaded.Text = e.BytesReceived.ToString() + " / " + e.TotalBytesToReceive.ToString();
}
我一直在尝试在FlowLayoutPanel中找到一个事件,我可以拦截并阻止它在孩子更新时滚动但到目前为止我还没有运气。
有可能这样做吗?如果是的话,我该怎么做呢?谢谢!
答案 0 :(得分:4)
如果在单击FlowlayoutPanel中的控件时出现滚动问题, 使用继承的控件:
public class MyFlowLayoutPanel : FlowLayoutPanel
{
protected override System.Drawing.Point ScrollToControl(Control activeControl)
{
//return base.ScrollToControl(activeControl);
return this.AutoScrollPosition;
}
}
答案 1 :(得分:1)
将Label的AutoSize
属性设置为 False 似乎可以解决问题。
在此处阅读更多内容:Similar Issue