我的 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/