ユーザーコントロールの境界線を3D表現する方法

  ユーザーコントロールの外周境界線を3D表現するには、「CreateParams」プロパティをオーバーライドして、「ExStyle, Style」値を変更することで行います。
【使い方】
/// <summary>
///  コントロールの作成時に必要な情報をカプセル化します。
///  (境界線表示の為の設定を追加)
/// </summary>
protected override CreateParams CreateParams 
{
    get 
    {
        // ウィンドウスタイルの定数
        const int WS_EX_CLIENTEDGE    = unchecked((int)0x00000200);
        const int WS_BORDER           = unchecked((int)0x00800000);

        // ユーザーコントロールの初期値を取得します。
        CreateParams cp = base.CreateParams;

        // 対象となるスタイルビットをクリアします。
        cp.ExStyle &= (~WS_EX_CLIENTEDGE);
        cp.Style &= (~WS_BORDER);

        // myBorderStyle はBorderStyleの指定値
        //
        switch (myBorderStyle) 
        {
            case BorderStyle.Fixed3D:        // 3D境界線
                cp.ExStyle |= WS_EX_CLIENTEDGE;
                break;

            case BorderStyle.FixedSingle:    // 一重線の境界線
                cp.Style |= WS_BORDER;
                break;

            case BorderStyle.None:           // 境界線なし
                break;
        }
        return cp;
    }
}
【注意】
戻る