在闭幕式中,我有这个:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
FormIsClosing = true;
KeysValuesUpdate();
}
FormIsClosing 是一个标志。
然后这是 KeysValuesUpdate 函数:
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);
}
}
}
问题是如果我只是在做 if (FormIsClosing == true) 下一行我不想生效我得到错误:
错误 1 嵌入式语句不能是声明或带标签的语句,并且它后面的行 : dr 是无符号的。
如果我在做:
if (FormIsClosing == true)
{
DialogResult dr = crawlLocaly1.ShowDialog(this);
}
然后 dr 在这一行上取消签名: if (dr == DialogResult.OK)
我要存档的是,如果我关闭我的应用程序,则不要先显示此对话框。显示对话框的行是:DialogResult dr = crawlLocaly1.ShowDialog(this);