gpt4 book ai didi

c# - 停靠栏更改时 UserControl 未在 FlowLayoutPanel 中呈现

转载 作者:太空狗 更新时间:2023-10-29 23:52:32 27 4
gpt4 key购买 nike

当我将 UserControl 添加到 FlowLayoutPanel 时,它们会正确显示。当我在添加之前更改 UserControls 上的 Dock 或 Anchor 属性时,它们仍会被添加但不会呈现。

根据“How to: Anchor and Dock Child Controls”,这应该是可能的。

  • 我可以看出控件已添加(尽管没有绘制),因为添加足够多的控件会导致出现垂直滚动条。
  • 将 UserControls 的“Dock”属性设置为“Left”或“None”将导致它们呈现,但不会呈现其他选项。
  • 将 UserControls 上的“Anchor”属性设置为 Top 以外的任何值 |左侧不呈现。
  • 在添加控件之前或之后设置停靠点没有区别(添加、停靠与停靠、添加)。
  • FlowLayoutPanel 本身已停靠(填充),FlowDirection 设置为 TopDown,WrapContents 设置为 false,AutoScroll 设置为 true,否则为默认设置。

我正在使用 .NET 3.5。


在回答评论时,两条评论线是我尝试更改扩展坞的位置。第二个点肯定更有意义,但我尝试了另一个,因为它不会受伤。

public void CreateObjectControl( object o )
{
ObjectControl oc = new ObjectControl();

oc.MyObject = o;

//This was a spot I mentioned:
//oc.Dock = DockStyle.Fill;

ObjectDictionary.Add( o, oc );
flowLayoutPanel1.Controls.Add( oc );

//This is the other spot I mentioned:
oc.Dock = DockStyle.Fill;
}

最佳答案

在进行任何需要渲染才能正确查看的修改之前,请尝试对控件使用 SuspendLayout 和 Resumelayout 函数。

您可以从 Designer.cs 中看到该特定控件的代码

语法

control.SuspendLayout();
{Your code for designer amendments}
control.resumeaLayout();

关于c# - 停靠栏更改时 UserControl 未在 FlowLayoutPanel 中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7436690/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com