我找到了解決辦法。
在形式漆中添加:
this.BackColor = Color.Lime;
this.TransparencyKey = Color.Lime;
var hb = new HatchBrush(HatchStyle.Percent60, this.TransparencyKey);
e.Graphics.FillRectangle(hb, this.DisplayRectangle);
在形式負載使面板邊緣輪,其中CTRL =面板。
Rectangle bounds = new Rectangle(0, 0, ctrl.Width, ctrl.Height);
int iCornerRadius = 20;
GraphicsPath gpath = new GraphicsPath();
gpath.AddArc(bounds.X, bounds.Y, iCornerRadius, iCornerRadius, 180, 90);
gpath.AddArc(bounds.X + bounds.Width - iCornerRadius, bounds.Y, iCornerRadius, iCornerRadius, 270, 90);
gpath.AddArc(bounds.X + bounds.Width - iCornerRadius, bounds.Y + bounds.Height - iCornerRadius, iCornerRadius, iCornerRadius, 0, 90);
gpath.AddArc(bounds.X, bounds.Y + bounds.Height - iCornerRadius, iCornerRadius, iCornerRadius, 90, 90);
gpath.CloseAllFigures();
ctrl.Region = new Region(gpath);
ctrl.Show();
現在很棘手。在winforms中創建圓角控件並不難,但將它們與半透明窗體結合起來很困難。 我可能已經解決了這個錯誤的方法,但是當我開始寫這麼多的代碼時,我無法改變它。 正確的方法可能是從[Hans Passant](http://stackoverflow.com/users/17034/hans-passant)的[這個答案](http://stackoverflow.com/a/10267279/3094533)創建半透明背景,然後找出一種方法來阻止透明度鍵顯示在角落附近。 –
我目前沒有時間寫出正確的答案,但也許別人可能會提供幫助。漢斯當你需要他的時候在哪裏? –
等待您的回覆.... – Rocky