调整包含UserControl的面板的大小

时间:2011-11-11 18:58:48

标签: c# winforms user-controls

我有一个包含不可见控件的UserControl,为了使它们可见,UserControl会调整大小。

我需要调整包含UserControl的Panel的大小,但我不知道如何。

5 个答案:

答案 0 :(得分:6)

Panel和Form类很好地处理了这种行为,没有明确的大小调整(当用户有高DPI监视器或使用大型或超大字体设置时没有引入布局错误。

1)使用停靠的FlowLayoutPanel创建一个表单。

Docked

2)将Form和FlowLayoutPanel的AutoSize设置为true,将AutoSizeMode设置为GrowAndShrink

GrowAndShrink

3)添加面板和内容。

Design

4)以编程方式将所需面板的Visible属性设置为隐藏

hiddenPanel.Visible = false;

Hidden

5)或者是真的

hiddenPanel.Visible = true;

Visible

答案 1 :(得分:2)

将此代码放在usercontrol中:

Size last = new Size(0, 0);

private void Me_Resize(object sender, System.EventArgs e)
{
    if (last != new Size(0, 0)) {
        this.Parent.Size = Size.Add(this.Parent.Size, Size.Subtract(this.Size, last));
    }
    last = this.Size;
}

还会保留边距(例如,如果面板大于您的用户控件或在您的用户控件旁边有其他控件。)

答案 2 :(得分:0)

如果您想将其调整为特定大小,可以在后面的代码中执行此操作:

Size panelSize = new Size(500, 500);
usercontrol1.Parent.Size = panelSize;

如果您想要调整大小,可以将此代码添加到usercontrol。

答案 3 :(得分:0)

要调整控件的大小,请调用控件的比例。

           // To zoom in controls.
            foreach (Control c in MyFlowLayoutPanel.Controls)
            {
                PictureBox ptc = c as PictureBox;

                if (null != ptc)
                {
                    Point pt = new Point(2, 2);
                    SizeF sf = new SizeF(pt);
                    c.Scale(sf);
                }
            }

//缩小控件。                                 foreach(在MyFlowLayoutPanel.Controls中控制c)                                 {                                     PictureBox ptc = c作为PictureBox;

                                if (null != ptc)
                                {
                                    SizeF sf = new SizeF(0.5F, 0.5F);
                                    c.Scale(sf);
                                }
                            }

答案 4 :(得分:0)

我知道这个主题很老了,但我想添加我的方法......

如果您有一个包含UserControl的Panel,您可以通过触发Form1_Resize事件轻松调整panel.Controls的大小。

let sequence = SKAction.sequence([movePlayerForward, movePlayerBack])
let player = SKSpriteNode(imageNamed: "player")

// start your action with repeating it forever
player.runAction(SKAction.repeatActionForever(sequence), withKey: "moveForwardBackward")

// stop your action after tapping
player.removeActionForKey("moveForwardBackward")

请确保正确锚定其内容。