gpt4 book ai didi

C# - 如何为 MdiChildren 设置一个小的 Mdi "area"?

转载 作者:行者123 更新时间:2023-11-30 14:32:28 24 4
gpt4 key购买 nike

我有一个 Mdi 父窗体和一些 Mdi 子窗体。到目前为止效果很好,但我想在父窗体上定义一个较小的区域,Mdi 子级可以在其中移动。看起来属性 MdiParent 属于 Form 类型。现在我想知道如何让 children 在特定区域内移动,而不是在整个父窗口内移动。

class MdiParentForm: Form
{
public MdiParentForm()
{
this.IsMdiContainer = true;
Form form = new Form();
this.AddOwnedForm(form);
form.MdiParent = this;
form.Show();
}
}

最佳答案

您可以只设置Mdi 表单的Padding。填充是控件(作为容器)与其子控件之间的距离。有 4 个面:左、上、右、下。这段代码只是让所有的面都一样:

Padding = new Padding(50);

您会注意到 MdiClient 周围的 BackColor 没有受到影响。要影响 MdiClient 周围的 BackColor,我们必须覆盖 OnPaint 以便不处理默认行为:

BackColor = Color.Green;//try setting the BackColor of the Mdi form to Color.Green
protected override void OnPaint(PaintEventArgs e){
RaisePaintEvent(this, e); //remove the base.OnPaint(e)
}

如果您想完全控制MdiClient,只需声明一个变量来保存MdiClient:

MdiClient client = Controls.OfType<MdiClient>().First();

然后你可以像在表单上一样使用它的Propertiesmethods,比如client.Dock = DockStyle.Leftclient.Width = 400;, ...

enter image description here

关于C# - 如何为 MdiChildren 设置一个小的 Mdi "area"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18464772/

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