C#实现全屏显示及退出功能

1. 新建FormFullscreen窗体

新建FormFullscreen窗体作为全屏显示,属性设置如下:

FormBorderStyle = None;
TopMost = true;
WindowState = Maximized;

2. 启动全屏的原窗体

启动全屏的原窗体中有按钮btnMaxScreen,点击按钮启动全屏。

FormFullscreen fs;
private void btnMaxScreen_Click(object sender, EventArgs e)
{
    fs = new FormFullscreen();
    fs.Controls.Add(panelScreen);   //panelScreen为全屏显示的Control
    fs.KeyUp += new KeyEventHandler(control_KeyUp);   //FormFullscreen添加按钮监听
    AddEventKeyUp(panelScreen);
    fs.ShowDialog();
}

/**
递归方法使panelScreen的子控件也添加键盘监听,当焦点落在panelScreen的子控件上时ESC按键也有效
*/
private void AddEventKeyUp(Control p)
{
    if (p != null)
    {
        p.KeyUp += new KeyEventHandler(control_KeyUp);
        foreach (Control c in p.Controls)
        {
            AddEventKeyUp(c);
        }
    }
}

点击回车退出全屏的实现

private void control_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Escape)
    {
        if (fs != null)
        {
            fs.Controls.Clear();
                
            //这句是为了把全屏显示的Control恢复到原窗体中,需根据实际情况修改。
            //这里不能和下面的Close顺序错了,要不然会引起错误,因为Close后把控件销毁了。
            this.panelContent.Controls.Add(this.panelScreen);

            fs.Close();
            fs = null;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,716评论 0 11
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 7,222评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,625评论 25 709
  • 大家知道数字资产之间的转帐都会需要手续费,那么今天我们来说下币新用户之间如何通过币新交易所省掉这一个环节的手续费:...
    琥珀_7512阅读 1,557评论 0 1
  • django默认会有csrf验证,而最方便的方法也就是把csrftoken存到cookie中,不方便。平常对安全性...
    varyshare阅读 5,913评论 1 2

友情链接更多精彩内容