父窗体包含两个子窗体

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication18
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public void showform(Form f)
        {

            int count = 0;
            foreach (Form ff in this.MdiChildren)
            {
                if (f.Name == ff.Name)
                {
                    ff.Focus();
                    count++;
                }
            }
            if(count==0)
            {
                f.MdiParent = this;
                f.Show();
            }

        }

        private void 窗体一ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form4 f = new Form4();
            showform(f);

        }

        private void 窗体二ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 f = new Form5();
            showform(f);
        }
    }
}
时间: 2024-10-10 11:10:54

父窗体包含两个子窗体的相关文章

Extjs 窗体居中,双重窗体弹出时清除父窗体的鼠标事件

这个是监控窗体缩放的事件 缩放中居中主要在 'beforeshow' 和 'destroy'两个事件里面监控 var EditTempWindow; Ext.EventManager.onWindowResize(function() { if (EditTempWindow) { EditTempWindow.center() } }); Ext.define("Define.Class.EditWindow", { id: 'RoomEditWin', xtype: 'window

子窗体和父窗体双向传值——C#窗体传值方法总结

简介 在很多场景下,我们的程序需要完成窗体间的传值功能,有时候是父窗体→子窗体单向传值.子窗体→父窗体传值甚至是,也有时候我们需要父窗体?子窗体双向传值. 在本文中主要介绍一些能够实现双向传值的方法,能够双向传值的方法也能够实现单向传值. 本文的所有源码都可以在GitHub上下载. 本文介绍的方法仅限于我自己知道并且实现过的,我相信还有很多我并不知道的方法,因此也许在很多朋友眼中本文的内容是浅显甚至可笑的,希望路过的各方朋友不吝赐教,我也希望不断地进步! 方法1:Public字段+ShowDia

mdi父窗体如何向子窗体发送数据

Q: mdi父窗体如何向子窗体发送数据,一般都有哪些方式? A: 对于最通常的MDI窗口, WinForm在Form 类的属性中提供了Form.MdiChildren这个属性来返回所有的子窗口. 这样我们只要继承Form类, 然后使用这个类来新建子窗口.public class MyChildForm : Form{} 然后, 通过MdiChildren属性来获取子窗口, 调用子窗口类中定义的公共方法, 或者公共属性来传送数据即可. 第二种方法, 我们还可以在MDI parent form中定义

只打开一个子窗体

在程序处理过程中,某一个功能可能需要打开一个窗体来设置参数,我们需要用户只能打开一个子窗体,可能通过判断窗体对象是否为空来实现. //判断窗体是否重新实例化 private frmAutoSave fas = null; protected override void OnClick() { try { if (fas == null) { fas = new frmAutoSave(timer); fas.Show(); } else { fas.Show(); } } catch (Exce

只能开启一个子窗体

只能开启一个子窗体 例如 有form1,form2 form1中 public static form2 f2; if (f2 == null) { f2 = new form2();f2.Show(); } else { f2.Activate(); } form2中 private void form2_FormClosing(object sender, FormClosingEventArgs e) { form1.f1 = null; } 哈哈

C# 两个窗体中相互切换的方法

注意将form2中的botton2的modyfier属性修改为public form1代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace test {    

WinForm实现同时让两个窗体有激活效果的特效实例

本文实例讲述了WinForm实现同时让两个窗体有激活效果的特效.主要采用windows api实现一个窗体激活的时候给另外一个发消息.分享给大家供大家参考. 具体实现方法如下: using System; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsApplication43 { public partial class Form1 : Form { Form frm =nu

小数运算需要注意什么? 接口和抽象类 WinForm窗体上两个panel,怎么实现一个panel固定漂浮在另一个panel之上

小数运算需要注意什么? 1. 生活中0.1+0.2=0.3, 计算机中可不是这样,为什么呢? 大家都知道计算机类型都是有数据范围的.整形int范围是 正负21亿左右,小数类型同样也是有范围的,但是即使0.1~0.2之前如果问你有多少小数? 无穷个!!! 那么有限的范围怎么表示无限的数据呢? 告诉你表示不了,只能存储一个无限接近的数. 另外大家都知道计算机所有数据都是二进制,0.5即 2的-1次方,0.25是2的-2次方,同样解释了为什么不能表达所有小数. 这样大家也就明白下面这个例子 100个0

Visual Studio 中两个窗体(WinForm)之间相互传值的方法

编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单.以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返回给FormMain 1. FormMain和FormInfo 点击"修改..."按钮,显示FormInfo 2. 设置FormInfo中buttonOK和buttonCancal的属性 3. FormMain代码 public partial class FormMain : Form