我有一個使用OpenFileDialog
和SaveFileDialog
一個簡單的Windows窗體應用程序。窗體有一個關閉按鈕,單擊時調用下面的代碼:Windows窗體花了很長時間來關閉
private void closeButton_Click(object sender, EventArgs e)
{
this.Dispose();
}
如果我打開窗體,然後從Visual Studio 2010中單擊關閉調試,窗體關閉,我回到了幾乎立即編輯模式。但是,如果我打開了OpenFileDialog或SaveFileDialog對象,並且選擇一個文件或點擊取消,然後點擊關閉,表格立即消失,但VS返回編輯模式最多需要10秒。
我對這些方法的代碼非常簡單:
private void saveDirectoryButton_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
try
{
String path = Path.GetDirectoryName(settings.SavePath);
if (!String.IsNullOrEmpty(saveTextBox.Text))
path = Path.GetDirectoryName(saveTextBox.Text);
sfd.InitialDirectory = path;
String name = Path.GetFileName(settings.SavePath);
if (!String.IsNullOrEmpty(saveTextBox.Text))
path = Path.GetFileName(saveTextBox.Text);
sfd.FileName = name;
}
catch { /* Don't do anything */ }
sfd.Filter = "Data File|*.dat|All Files|*.*";
DialogResult result = sfd.ShowDialog();
if (result == DialogResult.OK)
saveTextBox.Text = sfd.FileName;
}
打關閉後,輸出窗口顯示以下三行:
The thread 'vshost.RunParkingWindow' (0x1b8c) has exited with code 0 (0x0).
The thread '<No Name>' (0x39c) has exited with code 0 (0x0).
The program '[6052] LogScanner.vshost.exe: Managed (v2.0.50727)' has exited with code 0 (0x0).
前兩個馬上顯示出來,而第三在Visual Studio返回編輯模式之前彈出一個對話框。
沒有人有一個想法,爲什麼它這麼長時間,如果我打開這些對話框的一個返回編輯模式?
可能毫無關聯的:不要叫'this.Dispose()' - 嘗試'this.Close()'代替。 – Blorgbeard 2014-10-01 22:21:57
另請嘗試在'using'語句中將'SaveFileDialog sfd = new SaveFileDialog();'換行。 – Blorgbeard 2014-10-01 22:23:45
@Blorgbeard:我最初嘗試this.Close(),但結果相同。好的建議使用 - 我不確定爲什麼我沒有這樣做,因爲我通常會 - 但不幸的是,它並沒有解決問題。 – Tim 2014-10-01 22:44:52