Что касается этого ....
нет такой вещи, как свойство topmost в System.Windows.Forms
... вы уверены в этом,потому что нижеприведенное будет опровергать, что ...
Свойство Form.TopMost
Определение пространства имен: System.Windows.Forms
Assembly: System.Windows.Forms.dll
Получает или задает значение, указывающее, должна ли форма отображаться в качестве самой верхней формы.
Другие примеры самых активных действий:
Уловки PowerShell - откройте диалоговое окно как самое верхнее окно - и оно действительно покрывает ваш, но не самый верхний комментарий, то есть диалоговое окно, которое вы используете по сравнению с формой Windows.хорошо, что вы разместили здесь.Если вы хотели использовать WinForm / WPF, вам нужно использовать их.
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName PresentationFramework
Даже если нет встроенного свойства для установки диалога в качестве верхнего окна, этого можно достичь с помощьювторая перегрузка метода ShowDialog (MSDN: метод ShowDialog).Эта перегрузка ожидает параметр, который указывает родительские окна диалога.Так как собственное окно не будет использоваться после закрытия диалога, мы можем просто создать новую форму на лету в вызове метода:
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 }
Или эта ...
Держите Messagebox.show () поверх другого приложения, используя c #
MessageBox.Show("Message Text", "Header", MessageBoxButtons.OK, MessageBoxIcon.None,
MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); // MB_TOPMOST
The 0x40000 is the "MB_TOPMOST"-Flag.
# Or
MessageBox.Show("Hello there", "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
C # MessageBox на передний план, когда приложение свернуто в лоток
MessageBox.Show(new Form() { TopMost = true }, "You have not inputted a username or password. Would you like to configure your settings now?",
"Settings Needed",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
Заставить MessageBox быть в верхней части окна приложения в .net / WPF Принятый ответ с 43 ответами:
Сохранить форму поверх всех других окон
Что ж, это C #, но поскольку PowerShell может использовать все .Net, это все еще стоит рассмотреть.
Наконец, почему вы говорите, что то, что вы показываете?Разве не дает вам запланированные результаты?Когда я тестирую то, что у вас есть, оно работает как минимум на двух системах, на которых я его тестировал.