C#winform中MDI中的页面不允许移动且要求保留控制按钮
时间: 2024-05-12 20:14:23 浏览: 190
在 C# WinForm 中,禁止 MDI 子窗体移动并保留控制按钮,可以按照以下步骤进行操作:
1. 在 MDI 父窗体的 Load 事件中添加以下代码:
```csharp
foreach (Control ctl in this.Controls)
{
MdiClient client = ctl as MdiClient;
if (client != null)
{
client.BackColor = Color.White; // 设置 MDI 容器背景色
client.ControlAdded += new ControlEventHandler(child_ControlAdded); // 添加控件添加事件
}
}
```
2. 添加控件添加事件 child_ControlAdded:
```csharp
private void child_ControlAdded(object sender, ControlEventArgs e)
{
Form frm = e.Control as Form;
if (frm != null)
{
frm.MaximizeBox = false; // 禁用最大化按钮
frm.MinimizeBox = false; // 禁用最小化按钮
frm.StartPosition = FormStartPosition.CenterParent; // 设置子窗体居中显示
frm.FormBorderStyle = FormBorderStyle.FixedSingle; // 设置子窗体边框样式为固定
frm.FormClosed += new FormClosedEventHandler(child_FormClosed); // 添加窗口关闭事件
}
}
```
3. 添加窗口关闭事件 child_FormClosed:
```csharp
private void child_FormClosed(object sender, FormClosedEventArgs e)
{
this.LayoutMdi(MdiLayout.TileVertical); // 关闭子窗体后重新排列显示
}
```
这样设置后,所有的 MDI 子窗体都将禁止移动,并且最大化和最小化按钮也被禁用。同时,所有的 MDI 子窗体都将以固定的边框样式和居中的方式显示。
阅读全文