关于不规则窗体的制作,网上主要有两种方法。
一、设置 Form.BackgroundImage,Form.TransparencyKey,Form.FormBorderStyle。
二、用GDI+,手动计算背景图片的边界,转换成Region。

第一种的缺点是不能在非24位色的条件下正常工作。第二种太麻烦。我认为最简单的方法是,把Form.TransparencyKey设置成与Form.BackColor一样,使得窗口背景透明。设置Form.FormBorderStyle=FormBorderStyle.None。然后在Form上添加一个Panel。把Panel的背景色设置成透明。再把Panel的背景图片设成PNG格式的图片就好了。

不直接设置Form的原因是Form不允许背景色透明。

这个方法是从 http://www.codeproject.com/cs/media/CsTranspTutorial3.asp 上学来的。