在Excel加载项中,OpenFileDialog不起作用?

时间:2017-02-20 17:16:02

标签: c# excel vsto add-in

我在Windows窗体中有一个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;
    }
}

1 个答案:

答案 0 :(得分:0)

看起来对话框显示在Excel窗口后面。你需要为对话框设置一个父窗口hanlde将它带到前面。请参阅SetForegroundWindow功能区,它将创建指定窗口的线程置于前台并激活窗口。键盘输入被定向到窗口,并且为用户改变各种视觉提示。系统为创建前台窗口的线程分配的优先级略高于其他线程的优先级。

注意,ShowDialog类的ShowSystem.Windows.Forms.Form方法接受IWin32Window接口的实例,该实例允许指定父窗口句柄。