我正在向我的winform添加啓動畫面。我閃屏就是另一種形式,其中,啓動畫面從未完全加載,然後關閉
this.Text = "";
this.ControlBox = False;
所有這一切都是在形式是用的BackgroundImage一個PictureBox和
this.BackgroundImageLayout = BackgroundImageLayout.Center
和進度是遞增值,直到我的MainForm初始化做完了。
我使用Show而不是ShowDialog來打開Splash。那麼,ProgressBar完美的工作,但PictureBox中的BackgroundImage似乎永遠不會加載。我看到的只是帶有ProgressBar的白色背景。
我使用SplashScreen.Show()中增加ProgressBar的同一方法,並且此方法在從MainForm的構造函數調用的方法中調用。
我已經嘗試在單獨的線程中使用SplashScreen.Show,但導致相同的問題。任何幫助將不勝感激,如果需要,我願意提供更多信息。
解決:
當在自己的線程的ShowDialog開始就必須使用,因爲當線程結束展將關閉的形式,但與ShowDialog的,該線程將保持運行,直到窗體關閉。感謝大家的幫助。
聽起來像這樣。你將需要產生一個新的線程,或者在後臺加載,或者如果加載發生在前臺,則處理消息隊列。 – Will
我實際上已經嘗試在單獨的線程中使用Show(),但它仍然無法工作。什麼時候繪製背景圖像?在InitializeComponent()中? –
自從我做了WinForms已經有一段時間了,但是圖像可能是爲了響應控件捕獲的窗口消息而繪製的,並且需要重繪自己。如果您阻止了消息隊列,則控件將不會收到該消息。 –