首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BrowseForFolder:居中并制作TopMost

BrowseForFolder:居中并制作TopMost
EN

Stack Overflow用户
提问于 2016-04-21 12:35:02
回答 2查看 2.1K关注 0票数 4

我有一个Winforms Gui和一个BrowseForFolder-Dialog

有没有办法使这个对话框成为TopMost窗口和/或center在屏幕上的

代码语言:javascript
复制
$getfolder = New-Object -com shell.application
$foldername = $getfolder.BrowseForFolder(0,"Text",16,"")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-21 20:02:00

您必须指定所有者句柄。

代码语言:javascript
复制
$handle = [System.Diagnostics.Process]::GetCurrentProcess().MainWindowHandle
$getfolder = New-Object -ComObject Shell.Application
$foldername = $getfolder.BrowseForFolder([int]$handle, "Text", 16, "")

但是它是COM和.NET的混合体。

代码语言:javascript
复制
$win32WindowDefinition = @"
using System;
using System.Windows.Forms;

public class Win32Window : IWin32Window
{
    public Win32Window(IntPtr handle)
    {
        Handle = handle;
    }

    public IntPtr Handle { get; private set; }
}
"@

Add-Type -TypeDefinition $win32WindowDefinition -ReferencedAssemblies System.Windows.Forms.dll 

$ownerHandle = New-Object Win32Window -ArgumentList ([System.Diagnostics.Process]::GetCurrentProcess().MainWindowHandle)
$folderBrowserDialog = New-Object System.Windows.Forms.FolderBrowserDialog
$dialogResult = $folderBrowserDialog.ShowDialog($ownerHandle)
if ($dialogResult -eq [System.Windows.Forms.DialogResult]::OK) {
    $folderName = $folderBrowserDialog.SelectedPath
}

来自http://poshcode.org/2002

票数 2
EN

Stack Overflow用户

发布于 2016-04-21 17:19:45

如果可以使用FolderBrowserDialog,将其显示为最顶部和屏幕中心,就足以将TopMost表单传递给它的ShowDialog方法。

C#示例

代码语言:javascript
复制
var f = new FolderBrowserDialog();
f.ShowDialog(new Form() { TopMost = true}); 
this.Activate();

Powershell示例

代码语言:javascript
复制
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
$folder = New-Object System.Windows.Forms.FolderBrowserDialog
$form = New-Object System.Windows.Forms.Form -property @{TopMost = $True}
$folder.ShowDialog($form)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36769822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档