10

WinFormにヘルプボタンを追加できるようにしたいのですが、最大化ボタンと最小化ボタンはそのままにしておきますが、Windows標準では、両方を無効にしてヘルプボタンを表示できるようにします。

同様の質問がすでにあります: ヘルプを含める方法'?' winformのタイトルバーにありますが、その質問で質問したのは、ヘルプを表示するためにこれら2つのボタンを削除することに満足しています。

ヘルプ、最大、最小、閉じるボタンをすべて同時に持つことができるということはありますか?

ありがとう。

4

2 に答える 2

12

Windowsは両方の表示をサポートしていません。回避策は、同じアクションをトリガーするための独自のボタンを提供することです。右上隅に近い場所に置きます。これをトリガーするには、標準のヘルプボタンと同じように、WM_SYSCOMMANDメッセージを自分に送信します。このような:

    private void Help_Click(object sender, EventArgs e) {
        Help.Capture = false;
        SendMessage(this.Handle, WM_SYSCOMMAND, (IntPtr)SC_CONTEXTHELP, IntPtr.Zero);
    }

    private const int WM_SYSCOMMAND = 0x112;
    private const int SC_CONTEXTHELP = 0xf180;
    [System.Runtime.InteropServices.DllImport("user32.dll")]
    private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);

これは、ボタンの名前が「ヘルプ」であることを前提としています。

于 2012-06-21T16:55:00.187 に答える
2

これを行う1つの方法は、独自の境界線を描画することです。

FormBorderStyle = None

次に、独自のキャプション領域を作成します。ドラッグサイズ変更イベント、丸みを帯びた角が必要な場合は透明度などを処理する必要があるため、これは簡単ではありません。

于 2012-06-21T14:22:06.083 に答える