c# - 我的 C# 应用程序出现全屏错误

标签 c# .net visual-studio fullscreen

我的 C# 应用程序的全屏模式遇到错误。当我点击全屏按钮进入和退出全屏模式时没有问题。当我使用 F11 时也是如此,但是当我按全屏按钮进入全屏模式并按 F11 退出全屏模式时,它会退出全屏模式一毫秒左右,然后立即返回全屏模式。有人知道解决办法吗?我使用 Visual Studio 2012 Express。

我对全屏按钮使用以下代码:(名为 b8)

if (FormBorderStyle != FormBorderStyle.None)
        {
            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Normal;
            WindowState = FormWindowState.Maximized;
            p1.BackColor = Color.White;
            p2.BackColor = Color.White;
            TopMost = true;
            b8.Image = null;
            b8.Text = "-";
            W.Select();
        }
        else
        {
            FormBorderStyle = FormBorderStyle.Sizable;
            WindowState = FormWindowState.Maximized;
            if (Environment.OSVersion.Version.Build >= 7000)
            {
                if (DWM.DwmIsCompositionEnabled())
                {
                    Color c = Color.FromArgb(255, 221, 220, 220);
                    TransparencyKey = c;
                    p1.BackColor = c;
                    p2.BackColor = c;
                    MARGINS mr = new MARGINS();
                    mr.T = 1800;
                    IntPtr h = Handle;
                    int result = DwmExtendFrameIntoClientArea(h, ref mr);
                }
            }
            TopMost = false;
            b8.Text = null;
            b8.Image = MyApp.Properties.Resources.p;
            W.Select();
        }

F11 的这个:

if (y==(Keys.F11))
        {
            if (FormBorderStyle != FormBorderStyle.None)
            {
                FormBorderStyle = FormBorderStyle.None;
                WindowState = FormWindowState.Normal;
                WindowState = FormWindowState.Maximized;
                p1.BackColor = Color.White;
                p2.BackColor = Color.White;
                TopMost = true;
                b8.Image = null;
                b8.Text = "-";
            }
            else
            {
                FormBorderStyle = FormBorderStyle.Sizable;
                WindowState = FormWindowState.Maximized;
                if (Environment.OSVersion.Version.Build >= 7000)
                {
                    if (DWM.DwmIsCompositionEnabled())
                    {
                        Color c = Color.FromArgb(255, 221, 220, 220);
                        TransparencyKey = c;
                        p1.BackColor = c;
                        p2.BackColor = c;
                        MARGINS mr = new MARGINS();
                        mr.T = 1800;
                        IntPtr h = Handle;
                        int result = DwmExtendFrameIntoClientArea(h, ref mr);
                    }
                }
                TopMost = false;
                b8.Text = null;
                b8.Image = MyApp.Properties.Resources.p;
            }
        }          

最佳答案

在这两种情况下,您都在调用

WindowState = FormWindowState.Maximized;

这就是为什么你的窗口总是全屏显示的原因。在第二个代码块中,您应该删除该调用并将其保留为

WindowState = FormWindowState.Normal;

关于c# - 我的 C# 应用程序出现全屏错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622680/

相关文章:

c# - 为什么绑定(bind)不更新选择器选择的项目

c# - 在使用 IoC 的 c#.Net 中,不使用构造函数直接将依赖项传递给方法是否可以?

c# - 加速 C#/.NET 应用程序的执行

c# - 文本框值放入 int 数组中

visual-studio - 可以自定义Visual Studio的Publish命令吗?

visual-studio - Visual Studio 速成版与社区

c# - 什么是NullReferenceException,如何解决?

c# - MVC 4 View 重新加载数据更改

c# - 参数缺失 C#、MYSQL (VS 2010)

c# - Marshal.AllocHGlobal VS Marshal.AllocCoTaskMem,Marshal.SizeOf VS sizeof()