在C#中,可以使用Windows Forms或WPF(Windows Presentation Foundation)来创建子窗口并实现动态加载和卸载。这里我将分别为这两种技术提供一个示例。
- Windows Forms示例:
首先,创建一个名为MainForm
的主窗口,然后创建一个名为ChildForm
的子窗口。在MainForm
中添加一个按钮,用于加载和卸载子窗口。
using System;
using System.Windows.Forms;
namespace DynamicSubWindow
{
public partial class MainForm : Form
{
private ChildForm _childForm;
public MainForm()
{
InitializeComponent();
}
private void btnLoadUnload_Click(object sender, EventArgs e)
{
if (_childForm == null)
{
_childForm = new ChildForm();
_childForm.TopLevel = false;
_childForm.Parent = this;
_childForm.Visible = true;
_childForm.Location = new System.Drawing.Point(50, 50);
}
else
{
_childForm.Dispose();
_childForm = null;
}
}
}
}
- WPF示例:
首先,创建一个名为MainWindow
的主窗口,然后创建一个名为ChildWindow
的子窗口。在MainWindow
中添加一个按钮,用于加载和卸载子窗口。
using System.Windows;
namespace DynamicSubWindowWPF
{
public partial class MainWindow : Window
{
private ChildWindow _childWindow;
public MainWindow()
{
InitializeComponent();
}
private void btnLoadUnload_Click(object sender, RoutedEventArgs e)
{
if (_childWindow == null)
{
_childWindow = new ChildWindow();
_childWindow.Owner = this;
_childWindow.Show();
}
else
{
_childWindow.Close();
_childWindow = null;
}
}
}
}
在这两个示例中,我们都使用了一个按钮来加载和卸载子窗口。当点击按钮时,如果子窗口不存在,则创建一个新的子窗口并显示它;如果子窗口已经存在,则关闭它并释放资源。这样就实现了子窗口的动态加载和卸载。