关闭Windows表单

时间:2018-08-05 13:59:49

标签: c# winforms

昨天我收到了一些很棒的用户的帮助,并认为我会再次遇到我遇到的另一个问题。我一直使用this.Close();关闭我的winform,但是在这种情况下,我要从变量返回值,并利用this这样做,以便当我的代码击中this.Close();winform未关闭,因为this引用了其他内容

(或者至少我认为这是问题所在)-我所追求的是一种在代码达到winform TestData

时关闭我的this.Close();的方法

当前正在发生的是一个以

开头的无休止的代码循环
if (spreadsheetimported == true)
{

-如果需要显示其他代码,可以-

public partial class TestData : Form
{
    public CancelFileImport p1;

    public TestData(CancelFileImport _p1)
    {
        p1 = _p1;
        InitializeComponent();
    }       
    private void Testing_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason == CloseReason.UserClosing)
        {
            if (ssi == true)
            {
                CancelFileImport CFI = new CancelFileImport(this);
                CFI.StartPosition = FormStartPosition.CenterParent;
                CFI.ShowDialog();

                if (cnclsve)
                {
                    this.Close();
                }
                else
                {
                    //user did not mean to cancel the save
                    //go back to save method
                }
            }
        }
    }
}
public partial class CancelFileImport : Form
{
    public static TestData _p1;

    public CancelFileImport(TestData p1)
    {
        _p1 = p1;
        InitializeComponent();
    }
    public CancelFileImport()
    {
        InitializeComponent();
    }
    private void btnYes_Click(object sender, EventArgs e)
    {
        _p1.ssi = true;
        this.Close();
    }
    private void btnNo_Click(object sender, EventArgs e)
    {
        _p1.ssi = false;
        this.Close();
    }
}

1 个答案:

答案 0 :(得分:0)

尝试这样做

this.Close();替换为TestData.ActiveForm.Dispose();