请问怎样在MDI的命令中关闭子窗体?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问怎样在MDI的命令中关闭子窗体?相关的知识,希望对你有一定的参考价值。

以前我也遇过这个问题但解决方法很简单,应该有一个更好的办法,请各位高手指教!我的方法:在使窗体激活建立事件中添加:
if
你的mdi子窗体=nil
then
你的mdi子窗体:=T你的mdi子窗体.Create(self);
if
f你的mdi子窗体.WindowState=wsMinimized
then
你的mdi子窗体.WindowState:=wsnormal;
你的mdi子窗体.showmodal;在窗体onclose事件添加:
Action:=cafree;
你的mdi子窗体:=nil;
参考技术A 我是用菜单命令application.createform
创建子窗体的,可再次调用会出现两个窗体于是我先调用formclose(action:=cafree;)再调用上面的命令、可还是出现两个窗体。各位同仁帮帮忙!Email:douglass28@china.com本回答被提问者采纳
参考技术B 我的方法是不能公享代码,每一个子窗体建立和关闭都要写一样的代码,请有经验的各位指点。

MDI窗体和窗体之间的操作总结

MDI就是所谓的多文档界面,需要多个页面,比如系统中的程序管理器和文件管理器都是MDI程序

1:我们先创建一个MDI父窗体

技术分享

通过这种添加方式,系统会自动添加各种操作菜单和功能,方便了很多

我们可以在父窗体上添加子窗体

技术分享

效果如下:

技术分享

更改MDI主窗体背景

技术分享

2:窗体之间的操作

(1):获取文件路径信息的方法

技术分享

(2):跳转控件  这个在输入方面很方便不需要鼠标用回车键就可以跳转到下一个控件进行输入

技术分享

(3):窗体之间传递复杂数据

构造传递和公有字段传递

运行结果:

技术分享

代码:

private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(textBox1.Text.Trim());
f.Show();
}

这里需要重载窗体二的构造函数

public Form2(string msg)
{
InitializeComponent();
label1.Text = msg;
}

技术分享

以上是关于请问怎样在MDI的命令中关闭子窗体?的主要内容,如果未能解决你的问题,请参考以下文章

在 Xamarin 中关闭子窗体后触发 Main Page 的功能

C#中关闭子窗口的同时刷新父窗口的办法?

vb中怎样将一个窗体设为MDI的子窗体

delphi mdi子窗体显示和释放的问题

最大化 Mdi 子窗体时显示 ControlBox

c# 怎么完全隐藏mdi子窗体的标题栏?