java dialog关闭_设置DialogResult而不关闭对话框

这是预期的行为 . 看看下面的内容

特别......

“在Window上设置此属性后,窗口将自动关闭,ShowDialog方法将返回您在DialogResult属性中设置的结果 .

因为DialogResult返回对话框的结果,所以设置DialogResult的值将表示对话框的使用结束是有意义的 .

设置DialogResult触发了一个Close . 当前方法完成后,对话框将关闭 . 这意味着执行Debug.WriteLine以及dialog.Close() .

如果在按钮单击中运行以下内容,您会看到相同的内容

this.Close();

MessageBox.Show("TEST");

this.Close();

第一次调用Close将触发关闭并触发Closing和Closed事件,代码继续执行,因此显示消息框,第二次调用Close被调用,但它被忽略,因为已经调用了close . 它不会再发生任何事件 .

这是我测试过的代码,我在App.xaml.cs的OnStartup事件中使用ShowDialog打开了MainWindow

public partial class MainWindow : Window

{

public MainWindow()

{

InitializeComponent();

}

private void Button_Click(object sender, RoutedEventArgs e)

{

this.DialogResult = true;

//Or call Close

//this.Close();

MessageBox.Show("TEST");

this.Close();

}

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)

{

MessageBox.Show("Window_Closing");

}

private void Window_Closed(object sender, EventArgs e)

{

MessageBox.Show("Window_Closed");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值