2017-02-20 10 views
0

私はExcelのアドイン内で同じことをしたいとき、絶対にうまく動作するWindowsフォームでOpenFileDialogを持っています。何もしないようです。以下は私のコードの抜粋ですが、私は両方のコードが同じである(テキストボックス、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インタフェースのインスタンスを受け付けます。

関連する問題