步聚是這樣,建壹個timer,當選擇某個"歌曲"時不直接彈出窗口,而是啟動計時器timer.start,在計時器方法中設定自動點擊的時限(即打開彈出窗時倒計時,計時為0時自動關閉).
妳的msg窗類,確定會啟動壹個方法吧?那麽計時器歸零時就調用這個處理方法.
註意,因為用戶可能自主點擊,所以自主點擊時要註意關閉計時.
--------
自己試壹下,要代碼的話hi壹下.
-----代碼:hi不過去,發這兒了.
主體From From1
屬性:string _itemID;//選中項的ID
控件:button btnshow
事件:
private void btnshow_Click(object sender, EventArgs e)
{
frmMsgShow obMS = new frmMsgShow (_itemID);
obMS.Show();
}
彈窗From frmMsgShow
屬性:
_itemID;//傳入的選中項ID
int _tmrPrm=0; //計時的輔助,計時為5秒,若窗體滯留最大為10秒,則當_tmrprm =2時關閉
控件:
Timer Timer1 //計時器 Interval設置為5000毫秒。 Enabled=true窗體打開自動計時
button btnOk //accept button
重寫構造函數:
public frmMsgShow(string _initID)
{
_itemID=_initID;
...
}
事件處理
private void timer1_Tick(object sender, EventArgs e)
{
if(_tmrprm <2)
{
//時間不足
_tmrprm ++;
}
else
{
//計時完畢
addItem();
}
}
private void btnOk_Click(object sender, EventArgs e)
{
addItem();
}
方法:點擊按鈕或計時結束時被調用。
private void addItem()
{
//加入轉入項
...
//關閉窗體
this.close();
}