日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【转】关于等待窗体

發(fā)布時(shí)間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】关于等待窗体 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
c#.net 中如果想在主窗口A里點(diǎn)擊打開(kāi)新窗口B(因?yàn)橐獢?shù)據(jù)庫(kù)操作,Bload需一小段時(shí)間)之前彈出帶有滾動(dòng)條等待子窗口C來(lái)提示用戶沒(méi)有死機(jī),應(yīng)該怎么做?我用多線程打開(kāi)了c窗口,但是問(wèn)題:1.C窗口會(huì)作為一個(gè)新窗口彈出,在任務(wù)欄上有顯示,而不能作為A的子窗口彈出,我設(shè)置了mdiParent屬性,但是會(huì)報(bào)錯(cuò)“交叉線程……”;2.等B窗口load完畢需要關(guān)閉C窗口,應(yīng)怎么操作?請(qǐng)達(dá)人給予指導(dǎo),謝謝!

問(wèn)題補(bǔ)充:

1? ,? C_window.ShowInTaskbar=false;這樣就不會(huì)再任務(wù)欄上顯示 2? ,? B窗口載入完畢線程結(jié)束的時(shí)候執(zhí)行關(guān)閉c窗口就可以啦. 我試了試可以在任務(wù)欄上不顯示,但是我想讓這個(gè)C窗口在A窗口的范圍內(nèi)顯示,最好是正中間,但是C只能是以電腦屏幕為準(zhǔn)來(lái)顯示的,位置不太理想,請(qǐng)問(wèn)有辦法解決嗎?

?

在B窗體的加載事件里啟動(dòng)C窗體,等B加載完后用一個(gè)變量通知C窗體關(guān)閉

private void B_Load(object sender, EventArgs e){c = new C();Thread t=new Thread(new ThreadStart(要干的活 如 display)); //處理線程t.Start();c.ShowDialog();}public void display(){if (this.richTextBox1.InvokeRequired){myDelegate mydele = new myDelegate(copyDoc);richTextBox1.Invoke(mydele);c.Stop = true; //處理線程中,用于與等待窗體線程通信的變量}}public partial class C : Form{private bool IsStop ;private Thread t;public bool Stop{set { IsStop = value; }}public frmWaiting(){InitializeComponent();}private void C_Load(object sender, EventArgs e){IsStop = false;t = new Thread(new ThreadStart(closeThisForm)); //等待B窗體信息的線程t.Start();}private void closeThisForm(){while (!IsStop) //等待信號(hào){ } if (this.InvokeRequired){frmCloseHandler close = new frmCloseHandler(closeThisForm);this.Invoke(close);}else{this.Close();}IsStop = false;}

  

我剛整過(guò)一個(gè)這樣的

轉(zhuǎn)載于:https://www.cnblogs.com/huangfr/archive/2012/04/04/2431691.html

總結(jié)

以上是生活随笔為你收集整理的【转】关于等待窗体的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。