以下内容是 将panel控件 的边框进行了重绘,但如果要将四个角改成圆角的话,怎么实现呢?
        private void panel2_Paint(object sender, PaintEventArgs e)
        {
            ControlPaint.DrawBorder( e.Graphics,  
                                panel2.ClientRectangle,
                                Color.Blue ,
                                3, 
                                ButtonBorderStyle.Solid,
                                Color.Red,
                                3,
                                ButtonBorderStyle.Solid,
                                Color.Red, 
                                3,
                                ButtonBorderStyle.Solid,
                                Color.Red,
                                3,
                                ButtonBorderStyle.Solid);

解决方案 »

  1.   

    c# 的 panel 设置出来的效果太丑了,大家都用了哪些第三方控件呀?
      

  2.   

            #region Form圆角
            public void SetWindowRegion()
            {
                System.Drawing.Drawing2D.GraphicsPath FormPath;
                FormPath = new System.Drawing.Drawing2D.GraphicsPath();
                Rectangle rect = new Rectangle(0, 0, this.Width, this.Height - 22);
                FormPath = GetRoundedRectPath(rect, 50);
                this.Region = new Region(FormPath);
            }
            private GraphicsPath GetRoundedRectPath(Rectangle rect, int radius)
            {
                int diameter = radius;
                Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));
                GraphicsPath path = new GraphicsPath();
                //   左上角   
                path.AddArc(arcRect, 180, 90);
                //   右上角   
                arcRect.X = rect.Right - diameter;
                path.AddArc(arcRect, 270, 90);
                //   右下角   
                arcRect.Y = rect.Bottom - diameter;
                path.AddArc(arcRect, 0, 90);
                //   左下角   
                arcRect.X = rect.Left;
                path.AddArc(arcRect, 90, 90);
                path.CloseFigure();
                return path;
            }
            protected override void OnResize(System.EventArgs e)
            {
                this.Region = null;
                SetWindowRegion();
            }
            #endregionForm 画面圆角的 希望对你有帮助
      

  3.   

            #region Form圆角
            public void SetWindowRegion()
            {
                System.Drawing.Drawing2D.GraphicsPath FormPath;
                FormPath = new System.Drawing.Drawing2D.GraphicsPath();
                Rectangle rect = new Rectangle(0, 0, this.Width, this.Height - 22);
                FormPath = GetRoundedRectPath(rect, 50);
                this.Region = new Region(FormPath);
            }
            private GraphicsPath GetRoundedRectPath(Rectangle rect, int radius)
            {
                int diameter = radius;
                Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));
                GraphicsPath path = new GraphicsPath();
                //   左上角   
                path.AddArc(arcRect, 180, 90);
                //   右上角   
                arcRect.X = rect.Right - diameter;
                path.AddArc(arcRect, 270, 90);
                //   右下角   
                arcRect.Y = rect.Bottom - diameter;
                path.AddArc(arcRect, 0, 90);
                //   左下角   
                arcRect.X = rect.Left;
                path.AddArc(arcRect, 90, 90);
                path.CloseFigure();
                return path;
            }
            protected override void OnResize(System.EventArgs e)
            {
                this.Region = null;
                SetWindowRegion();
            }
            #endregion
    Form画面圆角的希望对你有帮助
      

  4.   

    Infragistics组件功能比较强大,你看看
      

  5.   

    这个好像是设置图形属性,让窗体边缘变得锐化,我做的是让窗体渐变,或者图形线条;用到Graphics这个属性, 导入using System.Drawing.Drawing2D; 好像是吧,俺也没做过, 期待答案!