2010-10-14 20 views
6

Một trong những đồng nghiệp của tôi đã đến gặp tôi với một vấn đề thú vị.Hiển thị hộp thoại WinForms với tiêu điểm từ tập lệnh powershell

Anh ấy hiển thị biểu mẫu WinForms từ tập lệnh PowerShell và trong khi biểu mẫu mở thành công, nó sẽ không lấy tiêu điểm. Thay vào đó, cửa sổ lệnh PowerShell vẫn giữ tiêu điểm cho đến khi biểu mẫu được nhấp một cách rõ ràng.

Tập lệnh đang được chạy từ dòng lệnh PowerShell sử dụng. \ ScriptName.ps1.

Chúng tôi đã thử kết hợp khác nhau của dlg.ShowDialog() (có và không qua $ this), dlg.Show(), dlg.Focus(), v.v. không có may mắn.

Có ai biết cách đặt biểu mẫu tập trung khi biểu mẫu được hiển thị không?

+0

là nó làm bất cứ điều gì khác ngoài chỉ gọi Show()? Tôi tưởng tượng cửa sổ lệnh chỉ đánh cắp lấy nét. Hãy thử ShowDialog() chẳng hạn. –

+0

Đó là những gì tôi mong đợi vấn đề được khi ông giải thích nó cho tôi, quá, nhưng ông đã trong thực tế đã sử dụng ShowDialog(). Vấn đề hóa ra là một cái gì đó sâu sắc hơn, nhưng xem câu trả lời của tôi dưới đây cho các giải pháp ông tìm thấy. –

Trả lời

9

Đây là cách chúng ta nhận nó làm việc (dòng đầu tiên là một trong những chúng ta bị mất tích):

$WinForm.Add_Shown({$WinForm.Activate()}) 
$WinForm.ShowDialog($this) | out-null 
+0

Chắc chắn đánh dấu là câu trả lời :) – Jaykul

Các vấn đề liên quan