我正在使用C#,並且我的GUI程序中有一個加載按鈕,它不會提示用戶提前保存數據加載一個新的。我怎樣才能讓提示信息正確顯示?數據按我的意思正確加載,但對話框消息未顯示。C#加載對話框(無法加載,但當它的時候,它的動作不起作用)
這是我的代碼部分:
private bool dirtyText;
private bool dirtyFilename;
#region load
//================================
// LOAD
//================================
private void loadFile()
{
try
{
textBox.Text = File.ReadAllText(fileName.Text);
dirtyText = false;
dirtyFileName = false;
}
catch (Exception ex)
{
MessageBox.Show("Load failed: " + ex.Message);
}
}
//================================
// LOAD - actual code to load files
//================================
private void load_Click(object sender, EventArgs e)
{
if (dirtyFileName)
{
DialogResult result = MessageBox.Show("Your data have not been saved yet. Would you like to save them before loading?", "Unchanged data", MessageBoxButtons.YesNoCancel);
switch (result)
{
case DialogResult.Yes:
File.WriteAllText(fileName.Text, " ");
loadFile();
break;
case DialogResult.No:
loadFile();
break;
case DialogResult.Cancel:
break;
}
}
else
{
loadFile();
}
}
#endregion
下圖顯示了你,我想看看當我點擊加載什麼。
而且快速說明:我所做的對話框工作然而,通過去除整個代碼塊,其中包括從switch語句中的if語句和擺脫if-else語句的;但是這樣做會渲染對話框中的所有按鈕都是無效的。保存不保存文件,加載刪除文本和取消,呃...取消只是做它最擅長的:取消操作。從技術上講,重要的按鈕是無用的。
我希望我能得到解決方案。欣賞它。
您在'load_Click'中的條件錯誤請使用'if(!dirtyFileName)'而不是'if(dirtyFileName)' –
在你顯示的代碼中,'dirtyFileName'總是'false',所以'DialogResult '代碼將永遠不會執行 –
我爲我的dirtyFileName和我的dirtyText指定了一個bool值,而我在它上面並且它工作正常。感謝你們!我很感激! :D – crhodes