Reputation: 69302
One of my coworkers just came to me with an interesting problem.
He's displaying a WinForms form from a PowerShell script, and while the form opens successfully it does not get focus. Instead the PowerShell command window retains focus until the form is explicitly clicked.
The script is being run from the PowerShell command line using .\ScriptName.ps1.
We've tried various combinations of dlg.ShowDialog() (with and without passing $this), dlg.Show(), dlg.Focus(), etc with no luck.
Does anybody know how to give the form focus when it's displayed?
Upvotes: 6
Views: 5594
Reputation: 8977
I was using C# in Powershell.
The Add_Shown
bit in Redwood's answer translates to adding an event handler for Shown
, or simply overriding OnShown
:
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
this.Activate();
}
Upvotes: 0
Reputation: 69302
This is how we got it working (the first line is the one we were missing):
$WinForm.Add_Shown({$WinForm.Activate()})
$WinForm.ShowDialog($this) | out-null
Upvotes: 12