C#,FormBorderStyle:无恢复问题

我有一个使用FormBorderStyle设置为“无”的应用程序。

与此相关的问题是,如果用户点击“显示桌面”button(这有效地最小化所有打开的窗口),然后从任务栏恢复其中一个窗体,所有的无边界forms将被恢复。

注意:如果在单击“显示桌面”button之前窗体被显式最小化(即WindowState = FormWindowState.Minimized),则会导致该特定窗体的预期行为。

另外请注意,对于常规窗体甚至是无界限的WPF窗口,情况并非如此。

Form.Designer.cs:

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 

Form.cs:

 private void MinimizeButton_Click(object sender, EventArgs e) { // If minimized explicitly, form behaves appropriately WindowState = FormWindowState.Minimized; } 

任何想法,为什么这是这样/如何解决它?

我相信这只是默认行为,因为无边界形式不应该被最小化。

看看这个帖子。 希望这会帮助你改变这个默认行为。

从帖子(添加到表单):

 const int WS_MINIMIZEBOX = 0x20000; const int CS_DBLCLKS = 0x8; protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.Style |= WS_MINIMIZEBOX; cp.ClassStyle |= CS_DBLCLKS; return cp; } }