📜  c#中的关闭表单(1)

📅  最后修改于: 2023-12-03 15:13:53.168000             🧑  作者: Mango

C#中的关闭表单

在C#中,关闭表单是一个常见的操作,通常在用户完成某些操作后,需要关闭当前表单并返回到上一个表单或终止应用程序。在本文中,我们将介绍可以使用的几种方法来关闭表单。

常规关闭

最常用的关闭表单方法是调用this.Close()函数,这将立即关闭当前表单。例如:

private void btnClose_Click(object sender, EventArgs e)
{
    this.Close();
}

这个方法不仅适用于按钮的单击事件,也可以在其他上下文中使用,例如在其他函数的末尾。需要注意的是,如果当前表单被用作对话框,那么使用这种方法将不起作用,因为对话框必须使用this.DialogResult属性来设置它的返回值。

通过按钮设置返回值

如果当前表单是一个对话框,并且需要在关闭时返回一个值,可以通过设置DialogResult属性来实现。例如,如果表单包含一个确认和取消按钮,可以按以下方式关闭:

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

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

这样,关闭表单后将返回DialogResult.OKDialogResult.Cancel的值,具体取决于用户点击的是哪个按钮。

向其他表单发送消息

有时,我们需要在关闭表单之前向其他表单发送一些信息。这可以通过将表单作为参数传递给构造函数,或者将其设置为公共属性来实现。例如,要将当前表单的文本框值传递给另一个表单:

public partial class Form1 : Form
{
    public string TextBoxValue { get; set; }

    private void btnClose_Click(object sender, EventArgs e)
    {
        this.TextBoxValue = this.txtBox.Text;
        MyOtherForm otherForm = new MyOtherForm(this);
        otherForm.Show();
        this.Close();
    }
}

public partial class MyOtherForm : Form
{
    private Form1 mainForm;

    public MyOtherForm(Form1 form)
    {
        this.mainForm = form;
        InitializeComponent();
    }

    private void MyOtherForm_Load(object sender, EventArgs e)
    {
        this.lblValue.Text = this.mainForm.TextBoxValue;
    }
}

这样,当用户关闭当前表单时,它将打开一个新的MyOtherForm表单,并显示Form1表单的文本框值。

在应用程序级别关闭

最后,如果需要在应用程序级别关闭所有表单,可以使用Application.Exit()函数。这将关闭整个应用程序,无论它当前打开了多少个表单。例如:

private void btnCloseAll_Click(object sender, EventArgs e)
{
    Application.Exit();
}

需要注意的是,这将立即终止应用程序,可能会造成数据或状态丢失,因此应该谨慎使用。

以上是C#中几种常用的关闭表单方法,程序员可以根据具体的需求来选择使用哪一种方法。