c#中MDI子窗体怎么建
时间: 2024-02-24 10:59:27 浏览: 18
在 C# 中创建 MDI 子窗体的步骤如下:
1. 在窗体设计器中,打开主窗体,将其属性 IsMdiContainer 设置为 true,即将其设置为 MDI 容器窗体。
2. 在工具箱中,选择 Form 控件,将其拖入主窗体中,这将会创建一个新的子窗体。
3. 设置新创建的子窗体的属性,如 Text、Size、Location 等。
4. 在主窗体中,调用子窗体的 Show() 方法,即可将子窗体添加到 MDI 容器窗体中,并显示出来。
下面是一个示例代码:
```csharp
// 创建子窗体
Form childForm = new Form();
childForm.Text = "子窗体";
childForm.Size = new Size(400, 300);
childForm.Location = new Point(10, 10);
// 将子窗体添加到 MDI 容器窗体中,并显示出来
childForm.MdiParent = this; // this 表示当前窗体(即主窗体)
childForm.Show();
```
相关问题
C#设置MDI子窗体不可移动
要设置 C# MDI 子窗体不可移动,可以使用以下代码:
```csharp
private void Form2_Load(object sender, EventArgs e)
{
this.ControlBox = false; // 隐藏控制按钮
this.FormBorderStyle = FormBorderStyle.None; // 设置无边框样式
}
private const int WM_NCLBUTTONDOWN = 0xA1;
private const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
private void Form2_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(this.Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
```
这里的代码实现了两个功能:
1. 隐藏控制按钮,即最大化、最小化和关闭按钮。
2. 通过重写 Form 的 MouseDown 事件,实现鼠标拖拽窗口的功能。这里只实现了鼠标左键拖拽窗口的功能,右键和中键不会触发拖拽。
这样就可以实现 C# MDI 子窗体不可移动的效果了。
c#父窗体添加子窗体代码
在 C# 中,要将一个窗体设置为另一个窗体的子窗体,可以使用以下代码:
```
ChildForm childForm = new ChildForm(); // 创建子窗体实例
childForm.MdiParent = this; // 将父窗体设置为子窗体的父窗体
childForm.Show(); // 显示子窗体
```
在这个例子中,我们创建了一个子窗体的实例 "childForm",然后将 "MdiParent" 属性设置为当前窗体(即父窗体),最后调用 "Show" 方法显示子窗体。
请注意,要将一个窗体设置为另一个窗体的子窗体,需要满足以下条件:
1. 子窗体的 "ControlBox" 属性必须为 "false",否则无法设置为父窗体的子窗体。
2. 父窗体的 "IsMdiContainer" 属性必须为 "true",否则无法添加子窗体。
以下是一个完整的示例代码,演示如何在父窗体中添加子窗体:
```
using System;
using System.Windows.Forms;
namespace WindowsFormsApp
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void openChildFormButton_Click(object sender, EventArgs e)
{
ChildForm childForm = new ChildForm();
childForm.MdiParent = this;
childForm.Show();
}
}
public partial class ChildForm : Form
{
public ChildForm()
{
InitializeComponent();
}
}
}
```
在这个例子中,我们首先创建了一个主窗体 "MainForm",并在其中添加了一个按钮 "openChildFormButton"。当用户单击该按钮时,会创建一个子窗体 "ChildForm",并将它设置为主窗体的子窗体。