C WinForm窗體的管理

2021-04-14 01:58:25 字數 2822 閱讀 2442

c#winform窗體的管理

1.api申明//

將指定的應用程式視窗標題欄上的標題複製放入緩衝器

[dllimport(

"user32.dll")]

private

static

extern

intgetwindowtext(

inthwnd, stringbuilder title, 

intsize);

//列舉出螢幕上的視窗應用程式

[dllimport(

"user32.dll")]

private

static

extern

intenumwindows(enumwindowsproc ewp, 

intlparam);

//返回應用程式視窗是否顯示

[dllimport(

"user32.dll")]

private

static

extern

bool

iswindowvisible(

inthwnd);

//設定應用程式視窗是否顯示

[dllimport(

"user32.dll")]

private

static

extern

bool

showwindowasync(intptr hwnd, 

intncmdshow);

//判斷應用程式視窗是否最小化

[dllimport(

"user32.dll")]

private

static

extern

bool

isiconic(

inthwnd);

//判斷應用程式視窗是否最大化

[dllimport(

"user32.dll")]

private

static

extern

bool

iszoomed(

inthwnd);

//將訊息傳給指定視窗

[dllimport(

"user32.dll")]

public

static

extern

intsendmessage(

inthwnd,

uint

msg,

intwparam,

intlparam);

2.遍歷窗體

private

const

intsw_hide =0

;private

const

intsw_shownormal =1

;private

const

intsw_showminimized =2

;private

const

intsw_showmaximized =3

;private

const

intsw_shownoactivate =4

;private

const

intsw_restore =9

;private

const

intsw_showdefault =10

;public

const

intwm_syscommand 

=0x0112

;public

const

intsc_close 

=0xf060

;private

bool

evalwindow(

inthwnd, 

intlparam)

return

true;}

private

void

getwindows()

3.操作窗體hwnd.tostring()="888"

//取得窗體裝態 

if(isiconic(convert.toint32(

"888

")))

//窗體最小化

else

if(iszoomed(convert.toint32(

"888

")))

//窗體最大化

else

//原始大小

//關閉程式 

sendmessage(

"888

", wm_syscommand, sc_close, 0);

//隱藏程式窗體

if(iswindowvisible(

"888"))

showwindowasync((intptr)convert.toint32(

"888

"), sw_hide);

//顯示並最大化窗體

showwindowasync((intptr)convert.toint32(

"888

"), sw_showmaximized);

//顯示並最小化窗體

showwindowasync((intptr)convert.toint32(

"888

"), sw_showminimized);

//設定窗體為原來大小顯示

showwindowasync((intptr)convert.toint32(

"888

"), sw_restore);

c Winform 載入窗體

先來乙個載入窗體 1 public partial class frmloading form210 11public keyvaluepaircurrentmsg 1217 18 19public frmloading 2029 3031 public void showlog string st...

C winform窗體假死

c winform窗體假死 我們經常會遇到當執行乙個比較大的函式時,窗體會出現假死的現象,給使用者的體驗不是很好,於是我們遇到了問題,那麼就必須解決,我們該如何解決呢,首先在自己的腦裡畫個問號,接下來我們就一起研究吧!先分析,這個問題是如何出現的呢!為什麼會出現,如何避免出現,避免不了的,如何解決等...

C winform ,主窗體呼叫子窗體

問題1,第二次呼叫子窗體時存在出現無法訪問已釋放物件的異常,原因,子窗體並沒有關閉,而是隱藏掛起了,在窗體closing事件 不是closed 中新增 private void registry formclosing object sender,formclosingeventargs e 問題2...