zhu_zy123 2020-09-23 15:28 采纳率: 87.5%
浏览 396
已采纳

C#如何关闭或者关闭指定的窗体画面(这些窗体全部由动态的形式添加)

C#如何关闭或者关闭指定的窗体画面(这些窗体全部由动态的形式添加)

1.要求:
在主窗口上面动态创建N个按钮,每点击其中一个按钮,创建子窗口(子画面可以同时存在)

2.我的思路:
系统一启动,用for语句动态创建N个按钮,同时绑定下面的Click事件。

3.遇到的问题点:
虽然这样就能实现每点击一个按钮能创建子画面,但是关闭对应的窗口就遇到问题,关不掉想要关掉的窗体(例如:主画面上有A,B,C 3个按钮,依次点击A,B,A按钮,希望达到重复点击同一个按钮是关掉原来的那个画面,再重新创建一个新画面, 但是失败了,求想法,思路或者代码???????)

4.相关代码

    private void button_Click(object sender, EventArgs e)
    {
        .......

        this.form2 = new Form2(List list); //传入需要在子画面中显示的内容
        this.form2.Show();
        ......
    }
  • 写回答

2条回答 默认 最新

  • threenewbee 2020-09-23 15:37
    关注

    所有打开的窗口都在Application.OpenForms集合
    所以可以用
    for each (Form f in Application.OpenForms)
    {
    if (f is Form1) f.Close(); //比如说要关闭 Form1
    }
    至于打开窗体
    Form2 f2 = new Form2();
    f2.Show();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。