[C#] FormBorderStyle=noneの場合にウィンドウの外側にウィンドウの影を表示させたい
FormBorderStyle=noneの場合にウィンドウの外側にウィンドウの影を表示させたい
このページのタグ:[C#] [フォーム]
FormBorderStyle=none の場合ウィンドウの外側にウィンドウの影が表示されません。しかし、時と場合によってはウィンドウの影を表示させたい場合もあります。
ウィンドウの影を表示させるには、ウィンドウ作成時のCreateParamsのスタイルに CS_DROPSHADOW を含めることで対応できます。
C#ではCreateParamsプロパティをオーバーライドすることでウィンドウ作成時のCreateParamsのパラメータを変更できます。
コード(FormMain.cs)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace App
{
  public partial class FormMain : Form
  {
    const int CS_DROPSHADOW = 0x00020000;
    public FormMain()
    {
      InitializeComponent();
    }

    protected override CreateParams CreateParams
    {
      get
      {
        CreateParams cp = base.CreateParams;
        cp.ClassStyle |= CS_DROPSHADOW;
        return cp;
      }
    } 

  }
}
実行結果

フォームに影がついていることが確認できます。
登録日 :2010-07-08
最終更新日 :2010-07-08
このページのタグ:[C#] [フォーム]