4

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

这样做的问题是,如果用户点击“显示桌面”按钮(有效地最小化所有打开的窗口),然后从任务栏中恢复其中一个表单,则所有无边框表单都将恢复。

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

另请注意,常规表单甚至没有边框的 WPF 窗口都不是这种情况。

Form.Designer.cs:

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

表格.cs:

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

关于为什么会这样/如何解决它的任何想法?

4

1 回答 1

2

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

看看这篇文章。希望它能帮助您更改此默认行为。

从帖子(添加到表格):

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;
    }
}
于 2012-09-08T05:11:08.670 回答