2011-04-05 35 views

回答

9

您使用DispatcherTimer創建了一個新窗口。當窗口打開時,您啓動計時器。然後,你有兩個選擇:

  • (易:)你設置定時器爲20秒,當計時器到期時關閉窗口。
  • (尼斯:)您將計時器設置爲一秒,並在每次計時器到期時遞減一些計數器(從20開始)。您顯示在窗口櫃檯,當你說非阻塞I立即排除MessageBox類(非阻塞你的意思是一個無模式對話框假設關窗當計數器達到0
6

? )。

您可以改爲創建一個您自己實現的MessageBox的Window。爲了使它不是模態的,你可以調用Show()方法。然後,你可以只設立了20秒的定時器來調用close方法:以上

DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();

//Constructor 
public MyMessageBox() 
{ 
    timer.Interval = TimeSpan.FromSeconds(20d); 
    timer.Tick += new EventHandler(timer_Tick); 
} 

public new void Show() 
{ 
    base.Show(); 
    timer.Start(); 
} 

void timer_Tick(object sender, EventArgs e) 
{ 
    //set default result if necessary 

    timer.Stop(); 
    this.Close(); 
} 

假定您已經創建了一個名爲類是MyMessageBox從窗口繼承。

+0

哎呀,看起來像Heinzi打我一拳。 – xr280xr 2011-04-05 13:09:26

+0

+1爲好例子! – Heinzi 2011-04-05 13:59:41