gpt4 book ai didi

c# - 在 Windows 窗体中单击关闭按钮时的事件处理程序

转载 作者:行者123 更新时间:2023-11-30 14:36:59 24 4
gpt4 key购买 nike

我想知道如果用户单击 Windows 窗体中的关闭按钮是否有任何事件处理程序。我最初的计划是当用户单击关闭按钮时,它会返回一个 bool 值给调用者或调用该表单的人。例如

public void newWindow(){

NewForm nw = new NewForm();
nw.ShowDialog();
if(nw.isClosed){
do something
}

}

这可能吗?

最佳答案

如果您使用的是 .ShowDialog(),则可以通过 DialogResult 属性获取结果。

public void newWindow()
{
Form1 nw = new Form1();
DialogResult result = nw.ShowDialog();
//do something after the dialog closed...
}

然后在 Form1 上的点击事件处理程序中:

private void buttonOk_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}

private void buttonCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}

如果您不想以对话框形式打开新表单,您可以这样做:

public void newWindow()
{
Form2 nw = new Form2();
nw.FormClosed += nw_FormClosed;
nw.Show();
}

void nw_FormClosed(object sender, FormClosedEventArgs e)
{
var form = sender as Form2;

form.FormClosed -= nw_FormClosed; //unhook the event handler

//you can still retrieve the DialogResult if you want it...
DialogResult result = form.DialogResult;
//do something
}

关于c# - 在 Windows 窗体中单击关闭按钮时的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9866207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com