C WinForm程式新增啟動畫面

2022-02-22 08:30:22 字數 2642 閱讀 3751

如果程式在裝載時需要進行較長時間的處理,最好使用啟動畫面,一方面美化程式,一方面可以不使使用者面對著一片空白的程式介面。

我手頭上乙個小專案主介面啟動時需要檢查使用者檔案及執行環境是否有效,需要一段時間處理,因此想到要新增乙個啟動畫面,在網上搜了一陣,發現下面兩個方案:

1、用c#給程式加啟動畫面並只允許乙個應用程式例項執行

2、how to:濺射螢幕(splash screen),也叫程式啟動畫面的製作(.net2003)

第乙個方案在實現與介面分離上做得不夠好,啟動介面(乙個窗體)依賴於特定窗體,主窗體還必須新增乙個preload方法完成裝載任務,只能在**級重用。而且那個只允許乙個例項的寫法也太....

第二個方案框架很好,但細微處理可能存在一點問題,需要判斷主窗體的windowstate,整個**也較複雜。

我改動了一下,基本結構仿照第二個方案。

功能:為程式新增啟動介面,顯示啟動介面的同時載入主窗體,主窗體載入完畢後關閉啟動介面,顯示主窗體。啟動畫面停留的時間是設定的時間和主窗體裝載所需時間兩個的最大值。啟動畫面在另乙個執行緒上執行。

程式**如下:

//

using

system.windows.forms;

using

system.threading;

using

system;

//啟動畫面虛基類,啟動畫面會停留一段時間,該時間是設定的時間和主窗體構造所需時間兩個的最大值

public

abstract

class

private

form _splashscreenform;

//啟動窗體

private

form _primaryform;

//主窗體

private

system.timers.timer _splashscreentimer;

private

int_splashscreentimerinterval

=5000;//

預設是啟動窗體顯示5秒

private

bool

_bsplashscreenclosed

=false

private

delegate

void

disposedelegate();

//關閉委託,下面需要使用控制項的invoke方法,該方法需要這個委託

public

this

.showsplashscreen();

//這裡建立和顯示啟動窗體

this

.mainformload();

//這裡建立和顯示啟動主窗體

} protected

abstract

void

oncreatesplashscreenform();

protected

abstract

void

oncreatemainform();

protected

abstract

void

setseconds();

protected

form splashscreenform }

protected

form primaryform }

protected

intsecondsshow }

} private

void

showsplashscreen()

private

void

displaysplashscreen()

private

void

splashscreendisplaytimeup(

object

sender, system.timers.elapsedeventargs e)

private

void

mainformload()

private

void

_primaryform_closed(

object

sender, eventargs e)

使用方法:定義乙個啟動類,應用程式從啟動類啟動,該類會使用繼承自啟動窗體虛基類的乙個啟動窗體類,在該類中定義啟動窗體和主窗體。啟動窗體和主窗體的**略去,注意要刪除機器生成的窗體**的main方法部分。

public

class

startupclass }

//啟動窗體類(繼承自啟動窗體虛基類),啟動畫面會停留一段時間,該時間是設定的時間和主窗體構造所需時間兩個的最大值

public

class

protected

override

void

oncreatesplashscreenform()

protected

override

void

oncreatemainform()

protected

override

void

setseconds() }

以上介紹的就是c# winform程式新增啟動畫面,希望對你有所幫助。

純QML程式新增開啟動畫

目前在用純qml做專案,由於移植到android後開啟比較慢,所以想給其新增乙個開啟動畫。如果用qwidget做頂層顯示控制項的話,在main函式中用qsplashscreen就可以很容易的實現開啟動畫 qsplashscreen的幫助文件有demo 但是目前用的是qquickview來顯示所以qs...

linux qt啟動畫面 QT 新增啟動畫面

許多應用程式在啟動時顯示乙個畫面。在程式啟動很慢時,程式設計師用這種方法可以讓啟動時間感覺不那麼長,還有用這個畫面滿足市場的一些要求。給qt應用程式加乙個啟動畫面很簡單,需要使用的類是qsplashscreen。下面的乙個程式的main 函式使用qsplashscreen顯示乙個啟動畫面,同時顯示載...

程式啟動畫面

vc選單欄的 工程 增加到工程 components and controls.單擊 insert 後會顯示確認對話方塊,點選 確認 後,會顯示插入資訊 class name 插入的啟動畫面視窗類的名稱 bitmap resource id 使用的點陣圖資源id 單擊 ok 按鈕後返回compone...