讓控制項全屏顯示(WinForm)

2022-08-29 10:12:13 字數 1564 閱讀 7933

1.應用winapi 「setparent」 介面:

[dllimport("

user32.dll

", setlasterror = true)]

static

extern intptr setparent(intptr hwndchild, intptr hwndnewparent);

複製**

control.dock = dockstyle.none;

control.left = 0;

control.top = 0;

control.width = screen.primaryscreen.bounds.width;

control.height = screen.primaryscreen.workingarea.height;

setparent(control.handle, intptr.zero);

複製**

履行上方的**後,我們的 control已經可以全屏顯示了,但還有乙個小題目,我們應當再供給乙個功能,讓使用者按某個鍵後,退出全屏,要不然關不掉,給誰用都鬥勁愁悶。這個時辰應當給控制項新增相干事務,取到鍵後返回。我們以esc鍵為例:

private

void addeventkeyup(control control) }}

void control_keyup(object sender, keyeventargs e)

}}

複製**

批改後的**如下:

control.dock = dockstyle.none;

control.left = 0;

control.top = 0;

control.width = screen.primaryscreen.bounds.width;

control.height = screen.primaryscreen.workingarea.height;

addeventkeyup(control);

control.focus();//

獲得核心,不然也得不到按鍵

setparent(control.handle, intptr.zero);

複製**

2.新建乙個視窗,設定 formborderstyle為none,windowstate為maximized,topmost為true。然後具體**如下:

addeventkeyup(control);

本來的parent.controls.clear();

frmfullscreen frm = new frmfullscreen();

frm.controls.add(control);

frm.showdialog();

複製**

private

void addeventkeyup(control control) }}

void control_keyup(object sender, keyeventargs e) }}

}

C 讓控制項全屏顯示(WinForm)

經過摸索,暫時發現兩種可行方法,如果有誰知道其他方法,敬請告知。1.使用winapi setparent 介面 dllimport user32.dll setlasterror true static extern intptr setparent intptr hwndchild,intptr ...

C 讓控制項全屏顯示(WinForm)

經過摸索,暫時發現兩種可行方法,如果有誰知道其他方法,敬請告知。1.使用winapi setparent 介面 dllimport user32.dll setlasterror true static extern intptr setparent intptr hwndchild,intptr ...

C 讓控制項全屏顯示(WinForm)

經過摸索,暫時發現兩種可行方法,如果有誰知道其他方法,敬請告知。1.使用winapi setparent 介面 dllimport user32.dll setlasterror true static extern intptr setparent intptr hwndchild,intptr ...