クロージングイベントで私はこれを持っています:
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);
}
}
}
問題は、(FormIsClosing == true)次の行を有効にしたくない場合にエラーが発生した場合です。
エラー1埋め込みステートメントを宣言またはラベル付きステートメントにすることはできません。その後の行:drは符号なしです。
私がやっている場合:
if (FormIsClosing == true)
{
DialogResult dr = crawlLocaly1.ShowDialog(this);
}
次に、drはこの行で署名解除されます:if(dr == DialogResult.OK)
アーカイブしたいのは、アプリケーションを閉じた場合、最初にこのダイアログを表示しないことです。そして、ダイアログを表示する行は次のとおりです。DialogResult dr = scrollLocaly1.ShowDialog(this);