C#不规则窗体问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 03:50:44
C# 将窗体的形状设为不规则之后,发现它的那个矩形边框还是存在的,只不过隐藏了。怎么样才能让一个窗体本身就是不规则,而不是将窗体矩形边缘的不需要的部分隐藏?
比如:将一个窗体设置成圆形的,但是运行时如果用鼠标拖动会发现以圆心为中心的矩形区域都会响应拖动的操作,明显可以看出隐藏的矩形部分的存在,这样不是很好看。如何使鼠标拖动时只要一出了圆形的范围即认为出了这个窗体的范围呢?也就是如何将矩形的窗体从实质上改为圆形。
谢谢各位!
希望知道解决方案的同志解释详细一点,不胜感激!
可以发到我的邮箱:san-shengshi@163.com 不胜感激!!!

回复hapgaoyi:不行啊,pictureBox就没有model属性,而且一张图片是矩形,图片除圆行之外的部分还在,怎么去掉呢?

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
System.Drawing.Drawing2D.GraphicsPath myPath=new System.Drawing.Drawing2D.GraphicsPath();
myPath.AddEllipse(new Rectangle(new Point(0,0),this.ClientSize));
this.Region=new Region(myPath);
}

在Form窗体的WindowDrag事件里面做判断试试呢。如果发现是在定义的圆形范围之外的点则不相应拖动操作。
Form窗体本来就被定义绘制成一个长方体,从它具有ClientRectangle属性也就可以看出来。
重写窗体的paint方法试试

首先把窗体的formboderstyle属性设为none然后把窗体的背景颜色改成siliver
把窗体的TransparencyKey属性颜色设为和背景颜色一样的,然后搞一个圆形的图片,把这个圆形图片放到picturebox里面,然后改picturebox的model属性这样就可以了