【Wpf/winform窗口或子窗体关闭隐藏嵌套问题show hide等】

本文详细介绍了WPF中子窗体的显示与隐藏技巧,重点讲解如何使用ShowDialog方法来显示子窗体,并通过Hide方法实现在不销毁子窗体的情况下隐藏它,以便后续再次使用。

总结下wpf窗体交互等问题

wpf/winform子窗体交互

初学wpf总会遇到这些问题,因为经常会调用子窗体,打开新窗体,传值等!今天一次性搞懂这些常见错误吧,子窗体交互 其实就是类之间的交互或者传递。

一、显示 隐藏子窗体

显示问题我推荐showdialog吧,目前觉得用起来比较舒服,我们来看看Showdialog:
ShowDialog在关闭时(close),比如点击 X 关闭,这种就是析构了,所以我们需要另寻他法

    public partial class LoginWindow : Window
    {
        //登录窗体构造
        public LoginWindow()
        {
            InitializeComponent();
            patternSelectWindow  = new PatternSelectWindow();
        }
        //子窗体声明
        PatternSelectWindow patternSelectWindow; 

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            patternSelectWindow.ShowDialog();
        }
    }

在这里插入图片描述
我们想要实现点击showdialog按钮 就弹出一个子窗体,并且子窗体关闭后再点击这个还能出现刚才的窗体。
但是很多人选择重新new,可是比如textbox的数据就会释放了。
如下错误:
在这里插入图片描述

那么解决方法是在子窗体调用完成想关闭它时,不直接点击关闭X。
插入如下代码在子窗体:

    /// <summary>
    /// PatternSelectWindow.xaml 的交互逻辑
    /// </summary>
    public partial class PatternSelectWindow : Window
    {
        public PatternSelectWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            //点击隐藏
            this.Hide();
        }
    }

在这里插入图片描述
点击这个hidden按钮,子窗体成功隐藏,再次点击showdialog按钮,重新出现。

this.Hide();

只是隐藏并 不是析构 该类。

**

当然,最后关闭时一定注意关闭所有线程!!

**

Environment.Exit(0); // 强制关闭所有线程 终止此进程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值