2017-10-10 64 views
0

我正在編寫一個Windows Forms應用程序,用戶被要求在其中連續選擇與任務相對應的文件:每個任務的一個特定文件。 現在,它會提示用戶在調用OpenFileDialog之前選擇與當前任務對應的文件,並在前一個窗口中指定任務名稱。我擔心,經過多次迭代後,用戶不會記得他目前選擇文件的任務。 顯而易見的解決方案是使用OpenFileDialog在同一個窗口上顯示包含任務名稱的提示。 由於OpenFileDialog是一個密封的類,它不能被繼承。 有沒有辦法做到這一點編碼我自己的文件選擇工具?向OpenFileDialog添加提示

+0

看到我的編輯 - 希望它有幫助! –

回答

2

您可以設置DialogTitle以顯示有關哪個任務的信息。

OR

爲什麼不顯示MessageBox提前(某事。像這樣)?

MessageBox.Show("Please select file for TASK 00001", "Select File"); 

//Execution will continue on UserClick on OK on that MessageBox => User should have read 
that message and should know what task is related 

OpenFileDialog dialog = new OpenFileDialog(); 
dialog.Title = "SELECT FILE FOR <YOUR TASKNAME GOES HERE>"; 
if(dialog.ShowDialog() == DialogResult.OK) 
{ 
    string path = dialog.FileName; 
    //Continue with your logic 
} 

enter image description here

UPDATE:

看一看的documentation for OpenFileDialog。 有一個Event被稱爲FileOK這是在選擇文件時觸發的。 你可以實施某事。像這樣:

private void Dialog_FileOk(object sender, CancelEventArgs e) 
{ 
    DialogResult result = MessageBox.Show("ARE U SURE ?", "?", MessageBoxButtons.YesNoCancel); 
    switch (result) 
    { 
     case DialogResult.Cancel: 
      e.Cancel = true; 
      break; 
     case DialogResult.Yes: 
      break; 
     case DialogResult.No: 
      e.Cancel = true; 
      break; 
    }    
} 

不要忘記附加到事件:

dialog.FileOk += Dialog_FileOk; 

enter image description here

你可以要求"Is this the correct file for TASK XYZ"例如。也可以使用e.Cancel = true;中止選擇,並保持打開對話框。

+0

謝謝你的想法,但我沒有看到目前的情況有明顯的改善,因爲在選擇文件的實際過程中任務名稱是不可見的。 – user2102327

+1

它將在對話框標題欄中可見?這不夠用嗎? –

+0

這也沒有改善這種情況。我希望用戶在文件選擇過程正在進行時而不是之後看到任務名稱。 – user2102327