2017-02-20 38 views
0

我有一個Windows窗體中的OpenFileDialog,它運行得非常好,當我想在Excel加載項中執行相同操作時,它似乎沒有任何操作。下面是我的代碼的摘錄,但是我很努力地看到問題出在哪裏,因爲兩者的代碼都是相同的(文本框,openFileDialog和按鈕名稱相同)。在Excel加載項中,OpenFileDialog不起作用?

public partial class DashboardControl : UserControl 
{ 
    public DashboardControl() 
    { 
     InitializeComponent(); 
    } 

    private void DashboardControl_Load(object sender, EventArgs e) 
    { 

    } 

    private void fileLocationText_TextChanged(object sender, EventArgs e) 
    { 

    } 


    private void openFile_Click(object sender, EventArgs e) 
    { 
     openFileDialog1.ShowDialog(); 

    } 

    private void openFileDialog1_FileOk(object sender, CancelEventArgs e) 
    { 
     fileLocationText.Text = openFileDialog1.FileName; 
    } 
} 

回答

0

看起來像在Excel窗口後面顯示對話框。你需要爲對話框設置一個父窗口hanlde將它帶到前面。請參見SetForegroundWindow functin,它將創建指定窗口的線程置於前臺並激活窗口。鍵盤輸入指向窗口,爲用戶改變各種視覺提示。系統爲創建前景窗口的線程賦予稍高於其他線程的優先級。

請注意,System.Windows.Forms.Form類的ShowShowDialog方法接受IWin32Window接口的實例,該實例允許指定父窗口句柄。