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);
}