我在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;
}
}
答案 0 :(得分:0)
看起来对话框显示在Excel窗口后面。你需要为对话框设置一个父窗口hanlde将它带到前面。请参阅SetForegroundWindow功能区,它将创建指定窗口的线程置于前台并激活窗口。键盘输入被定向到窗口,并且为用户改变各种视觉提示。系统为创建前台窗口的线程分配的优先级略高于其他线程的优先级。
注意,ShowDialog
类的Show和System.Windows.Forms.Form
方法接受IWin32Window接口的实例,该实例允许指定父窗口句柄。