gpt4 book ai didi

winforms - FolderBrowserDialog 置于最前面

转载 作者:行者123 更新时间:2023-12-03 01:02:29 26 4
gpt4 key购买 nike

我有以下运行良好的 PowerShell 函数,但该窗口在 PowerShell ISE 后面的后台打开。

# Shows folder browser dialog box and sets to variable
function Get-FolderName() {
Add-Type -AssemblyName System.Windows.Forms
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog -Property @{
SelectedPath = 'C:\Temp\'
ShowNewFolderButton = $false
Description = "Select Staging Folder."
}
# If cancel is clicked the script will exit
if ($FolderBrowser.ShowDialog() -eq "Cancel") {break}
$FolderBrowser.SelectedPath
} #end function Get-FolderName

我可以看到有一个 .TopMost 属性可以与 OpenFileDialog 类一起使用,但这似乎没有转移到 FolderBrowserDialog类。

我错过了什么吗?

最佳答案

希望对你有帮助

Add-Type -AssemblyName System.Windows.Forms
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
$FolderBrowser.Description = 'Select the folder containing the data'
$result = $FolderBrowser.ShowDialog((New-Object System.Windows.Forms.Form -Property @{TopMost = $true }))
if ($result -eq [Windows.Forms.DialogResult]::OK){
$FolderBrowser.SelectedPath
} else {
exit
}

//编辑评论

ShowDialog () 方法有 2 个变体(重载)。

参见文档:http://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog.showdialog%28v=vs.110%29.aspx

在第二个变体中,您可以指定应该作为对话之母的窗口。

topmost 应该少用或者根本不用!如果多个窗口是最顶层的,那么哪个是最顶层的? ;-))首先尝试将您的窗口设置为母窗口,然后 OpenfileDialog/SaveFileDialog 应该始终出现在您的窗口上方:

$openFileDialog1.ShowDialog($form1)

如果这还不够,请选择 Topmost。

你的对话窗口继承了母亲的属性。如果您的母窗口位于最顶层,那么对话框也位于最顶层。

这是一个将对话设置为最顶层的示例。

然而,在这个例子中,使用了一个新的未绑定(bind)窗口,所以对话框是未绑定(bind)的。

$openFileDialog1.ShowDialog((New - Object System.Windows.Forms.Form - Property @{TopMost = $true; TopLevel = $true}))

关于winforms - FolderBrowserDialog 置于最前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54037292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com