将FolderBrowserDialog设置为前景

时间:2009-09-30 09:56:26

标签: c# installshield folderbrowserdialog

我正在创建一个Basic MSI installshield安装程序。并且为了选择安全路径,我正在调用FolderBrowserDialog。一切正常,除了FolderBrowserDialog在后台出现。我想将它设置为前景窗口。如果没有其他窗口打开,此代码始终返回true并正常工作。

如何检查dialogHandle是否是我的对话框句柄?

这是我的方法:

/// <param name="fPath">INSTALLPATH</param>
    /// <param name="handle">installshield handle</param>
    /// <returns></returns>
    public string NetworkFolderDialog(string sFilePath, IntPtr handle)
    {

        FolderBrowserDialog dialog = new FolderBrowserDialog();

        IntPtr handle2 = GetDesktopWindow();
        IntPtr dialogHandle = GetWindow(handle2, 5);

        bool set = SetForegroundWindow(dialogHandle);

        DialogResult result = dialog.ShowDialog();

        MessageBox.Show(set.ToString());

        if (result == DialogResult.OK)
            return dialog.SelectedPath;
        else
            return sFilePath;
    }

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我认为您应该从代码中删除以下行:

IntPtr handle2 = GetDesktopWindow();
IntPtr dialogHandle = GetWindow(handle2, 5);

bool set = SetForegroundWindow(dialogHandle);

答案 1 :(得分:0)