.net c#高人回答(关于form里放一张圆角图片的问题)

来源:百度知道 编辑:UC知道 时间:2024/06/02 18:02:59
我把form的背景图片设置了一张圆角的图片,可是form本身是四方的,
放了一张圆角图片四边就会多出四个 “角”

如何去掉这四个角啊,如何form透明度属性设为0% 那么所有控件看不件了,背景图片也透明了,整个窗体隐身了。
backclolor 属性设置为 transparent是 不 允许的。

那么怎么办啊,别告诉我用代码扫描整个窗体。
我不要大幅代码的!

有牛人吗

图片都是四方的,圆角矩形的图片也是四方的,不过4个角是透明色而已。
不用代码做圆角窗的方法没有。

最低限度的代码,定义一个圆角矩形,然后把窗体的Region设置为这个圆角矩形,这个Region已经是.net提供给我们的最容易的改窗体的属性了,以前要自己调API的说

using System.Drawing.Drawing2D;
protected override void OnPaint( System.Windows.Forms.PaintEventArgs e )
{
GraphicsPath oPath = new GraphicsPath();
int x=0;
int y=0;
int w=Width;
int h=Height;
int a=40;
Graphics g=CreateGraphics();
oPath.AddArc(x,y,a,a,180,90);
oPath.AddArc(w-a,y,a,a,270,90);
oPath.AddArc(w-a/2,h-a/2,a/2,a/2,0,90);
oPath.AddArc(x,h-a,a,a,90,90);
oPath.CloseAllFigures();
Region=new Region(oPath);
}

那不好办,最简单的办法是:
首先设置一下是否出现窗体的边框和标题栏。
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
然后在窗体的Load事件中写如下代码:
private void Form1_Load(object sender, EventArgs e)
{
this.Transp