您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

C#中让控件全屏显示的实现代码

作者:佚名    责任编辑:admin    更新时间:2022-06-22

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) { 
if (control != null) { 
control.KeyUp += new KeyEventHandler(control_KeyUp); 
foreach (Control c in control.Controls) {// 需要给子控件也添加上,否则有可能取不到。 
AddEventKeyUp(c); 



void control_KeyUp(object sender, KeyEventArgs e) { 
if (e.KeyCode == Keys.Escape) { 
if (control != null) { 
SetParent(control.Handle, 原来的parent.Handle); 
control.Dock = DockStyle.Fill; 



修改后的代码如下: 
复制代码代码如下:
control.Dock = DockStyle.None; 
control.Left = 0; 
control.Top = 0; 
control.Width = Screen.PrimaryScreen.Bounds.Width; 
control.