4

FormBorderStyleが「None」に設定されたFormsを使用するアプリがあります。

これに関する問題は、ユーザーが[デスクトップの表示]ボタン(開いているすべてのウィンドウを効果的に最小化する)を押してから、タスクバーからフォームの1つを復元すると、すべてのボーダレスフォームが復元されることです。

注:[デスクトップの表示]ボタンをクリックする前にフォームが明示的に最小化されている場合(つまり、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;
}

なぜこれが当てはまるのか/それを修正する方法についてのアイデアはありますか?

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 に答える