我在visual studio的一個應用程式中有兩個winforms。第一個是一個加載螢屏,確保沒有連接問題,然后打開第二個winforms,這將是一個登錄表單。我使用這個方法來關閉第一個表單并打開第二個表單:
this.Close()。
th = new Thread(opennewform); // [opennewform thread: Application.Run(new Login(); ]
th.SetApartmentState(ApartmentState.STA)。
th.Start()。
并且作業正常,但是當第二個表單打開時,它就失去了焦點。我試著在第二個表單中加入this.Activate, this.BringtoFront, this.Show,但它并沒有發揮作用。而我需要的是在第一個表單關閉后,第二個表單打開時,這個第二個表單是 "活動 "表單,所以它總是彈出來。我還需要使用close/thread方法,以便第一個表單真正關閉,而不僅僅是this.hide();,而是真正停留在后臺。提前感謝您的幫助。
uj5u.com熱心網友回復:
你不需要創建一個新的執行緒。取而代之的是,將啟動代碼改為類似這樣的內容
[]
static void Main()
{
Application.SetHighDpiMode(HighDpiMode.SystemAware)。
Application.EnableVisualStyles()。
Application.SetCompatibleTextRenderingDefault(false)。
var form1 = new form1();
form1.Show();
應用程式.運行()。
}
即從Application.Run()中洗掉第一個表單,這樣當這個表單關閉時,應用程式就不會退出。
然后用
打開第二個表單Close()。
var form2 = new form2();
form2.Show()。
現在,當你關閉任何表單時,應用程式將不會自動退出。因此,你必須用Application.Exit();明確地退出它,例如,在第二個表單的FormClosed事件中。
uj5u.com熱心網友回復:
嘗試:
Form2 f2 = new Form2()。
this.Hide()。
f2.ShowDialog()。
this.Close();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/309681.html
標籤:
