【Wpf/winform窗口或子窗体关闭隐藏嵌套问题show 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); // 强制关闭所有线程 终止此进程
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值