如题,总结一下,看看有什么好的方法,我知道网上已经有好多了,现在比较一下哪个方法更好方法一  用图片作为窗体的背景图片,然后设置 FormBorderStyle = FormBorderStyle.None;
.TransparencyKey 设置为图片的背景颜色,但这种方法不太理想,出来的窗体在 24 位色以上,窗体的透明部分并没有脱离窗体,还是窗体的一部分。方法二   利用GraphicsPath 和 Region 来构造窗体。这样可以解决上面的问题,但不知道这个方法可不可以象上面那样把一幅图片作为窗体的外观,窗体可见部分就是图片的样子。麻烦知道怎么解决这个问题的大哥们提供一点思路,谢谢了:)在下是个新手。说的不对的地方还请大家指正,构造不规则窗体可能还有别的方法,大家来讨论一下吧,共同进步:)

解决方案 »

  1.   

    http://developer.ccidnet.com/pub/disp/Article?columnID=340&articleID=42929&pageNO=1
      

  2.   

    方法二可以利用Region构造得到图片的框
      

  3.   

    用API函數不行嗎?我才學C#不久...
      

  4.   

    以前看过一个文章,是VC++实现的,调用Windows API,记得是CreateWindowRng,SetWindowRng之类的,不知道C#下有没有简单的方式来实现?
      

  5.   

    MSDN上的例子:
    本示例创建一个椭圆形的窗体。示例
    protected override void OnPaint( System.Windows.Forms.PaintEventArgs e )
    {
        System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath();
        shape.AddEllipse(0, 0, this.Width, this.Height);
        this.Region = new System.Drawing.Region(shape);
    }