C# 如何在关闭程序窗体1时避免显示其他窗体?

C# 如何在关闭程序窗体1时避免显示其他窗体?,c#,C#,在闭幕式上,我有以下几点: private void Form1_FormClosing(object sender, FormClosingEventArgs e) { FormIsClosing = true; KeysValuesUpdate(); } FormsClosing是一面旗帜 然后这是KeyValuesUpdate函数: public void KeysValuesUpdate()

在闭幕式上,我有以下几点:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            FormIsClosing = true;
            KeysValuesUpdate();
        }
FormsClosing是一面旗帜

然后这是KeyValuesUpdate函数:

public void KeysValuesUpdate()
        {
            using (var w = new StreamWriter(keywords_path_file))
            {
                if (FormIsClosing == true)
                crawlLocaly1 = new CrawlLocaly(this);
                crawlLocaly1.StartPosition = FormStartPosition.CenterParent;
                if (FormIsClosing == true)
                DialogResult dr = crawlLocaly1.ShowDialog(this);
                if (dr == DialogResult.OK)
                {
                    if (LocalyKeyWords.ContainsKey(mainUrl))
                    {
                        LocalyKeyWords[mainUrl].Clear();
                        LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                    }
                    else
                    {
                        LocalyKeyWords[mainUrl] = new List<string>();
                        LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                    }
                    Write(w);
                    ClearListBox();
                }
                if (dr == DialogResult.Cancel)
                {
                    Write(w);
                }
            }
        }
那么dr在这一行上是无符号的:if(dr==DialogResult.OK)

我想归档的是,如果我关闭我的应用程序,就不要先显示这个对话框。
显示对话框的行是:DialogResult dr=crawlocaly1.ShowDialog(this)

您的条件仅指下一行,因为您没有在括号中添加任何内容

我想这应该行得通:

        using (var w = new StreamWriter(keywords_path_file))
        {
            if (FormIsClosing == true)
            {
            crawlLocaly1 = new CrawlLocaly(this);
            crawlLocaly1.StartPosition = FormStartPosition.CenterParent;
            DialogResult dr = crawlLocaly1.ShowDialog(this);
            if (dr == DialogResult.OK)
            {
                if (LocalyKeyWords.ContainsKey(mainUrl))
                {
                    LocalyKeyWords[mainUrl].Clear();
                    LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                }
                else
                {
                    LocalyKeyWords[mainUrl] = new List<string>();
                    LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                }
                Write(w);
                ClearListBox();
            }
            if (dr == DialogResult.Cancel)
            {
                Write(w);
            }
            }
        }
使用(var w=newstreamwriter(关键字\u路径\u文件))
{
if(FormIsClosing==真)
{
crawlLocaly1=新的CrawlLocaly(此);
crawlocaly1.StartPosition=FormStartPosition.centerpresent;
DialogResult dr=crawlLocal1.ShowDialog(此);
if(dr==DialogResult.OK)
{
if(LocalyKeyWords.ContainsKey(mainUrl))
{
LocalyKeyWords[mainUrl].Clear();
LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
}
其他的
{
LocalyKeyWords[mainUrl]=新列表();
LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
}
写(w);
ClearListBox();
}
if(dr==DialogResult.Cancel)
{
写(w);
}
}
}

根据OP的评论更新

以下是在程序未关闭时如何显示窗体:

            DialogResult dr = DialogResult.None;//Increase accessibility domain, setup a good default value
            if (FormIsClosing != true)
            {
              dr = crawlLocaly1.ShowDialog(this);
            }

只需将您的
if
语句下移一行即可。我犯了一个错误,关闭程序时我不想执行的唯一行是:DialogResult dr=crawlocaly1.ShowDialog(此);我不希望它在关闭程序时再次显示对话框。用我现在所做的更新了我的问题。P.Brian.Mackey我尝试过,但它下面的行中的dr没有签名。所以我得到了错误的答案。@user2065612-更新的答案。
            DialogResult dr = DialogResult.None;//Increase accessibility domain, setup a good default value
            if (FormIsClosing != true)
            {
              dr = crawlLocaly1.ShowDialog(this);
            }