1. 程式人生 > >Winform跳轉不"閃現"

Winform跳轉不"閃現"

後臺 pen lse hide led catch 就是 span tick

第一次寫博客,所以寫的不好還請大家多多見諒!

因為公司做的是C/S項目,客戶端是winform窗體,後臺是JAVA做的。然後最近開發遇到了一些問題:窗體跳轉的時候出現“閃現”(假如在桌面運行,跳轉時會先顯示桌面再顯示下一個窗體),大致思路就是在跳轉後的窗體裏把跳轉前的窗體關閉,而不是在跳轉前窗體中寫Form2.Show();this.Close(); 還是一邊貼代碼一遍描述吧,這樣更直觀一點

  • 首先在第一個窗體裏實例化第二個窗體:

Form1 form1 = new form1();

form1.Show();

註:在這裏先不關閉此窗體

  • 然後在第二個窗體中關閉第一個窗體

在Load事件中創建一個定時器,定時關閉第一個窗體:

private Timer timer2;

private void Form2_Load(object sender, EventArgs e)
{
       try
       {
             timer2 = new Timer();
             timer2.Interval = 2000;
             timer2.Enabled = true;
             timer2.Tick += Timer2_Tick;
        }
        
catch (Exception ex) { // } } private void Timer2_Tick(object sender, EventArgs e) {
if(timer2!=null)
{
timer2.Enabled = false;
timer2.Dispose();
}
this.Invoke(new MethodInvoker(delegate { foreach (var item in Application.OpenForm) {
if(item is Form1) { item.Close(); } } })); }

當然前提是這兩個窗體都不是主窗體,如果是主窗體,則把item.Close()改成item.Hide(); 等到要返回時則用Application.OpenForm來查找到此窗體並Show出來。

Over.

Winform跳轉不"閃現"