zoukankan      html  css  js  c++  java
  • c # 窗体圆角

    引用:http://www.cnblogs.com/UouHt/archive/2009/02/23/1396544.html

    public void SetWindowRegion()
    {
        System.Drawing.Drawing2D.GraphicsPath FormPath;
        FormPath 
    = new System.Drawing.Drawing2D.GraphicsPath();
        Rectangle rect 
    = new Rectangle(022this.Width, this.Height - 22);//this.Left-10,this.Top-10,this.Width-10,this.Height-10);                 
        FormPath = GetRoundedRectPath(rect, 30);
        
    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, 18090);
        
    //   右上角   
        arcRect.X = rect.Right - diameter;
        path.AddArc(arcRect, 
    27090);
        
    //   右下角   
        arcRect.Y = rect.Bottom - diameter;
        path.AddArc(arcRect, 
    090);
        
    //   左下角   
        arcRect.X = rect.Left;
        path.AddArc(arcRect, 
    9090);
        path.CloseFigure();
        
    return path;
    }
    protected override void OnResize(System.EventArgs e)
    {
        
    this.Region = null;
        SetWindowRegion();
    }
    复制代码


    教你一招:构造圆角窗体  
    http://topic.csdn.net/t/20041128/19/3596094.html  

    增加命名空间:using System.Drawing.Drawing2D;  
    添加方法如下:当然各角的点可根据需要确定. 

    复制  保存
    复制代码
    private void Type(Control sender, int p_1, double p_2)
    {
        GraphicsPath oPath 
    = new GraphicsPath();
        oPath.AddClosedCurve(
            
    new Point[] {
                
    new Point(0, sender.Height / p_1),
                
    new Point(sender.Width / p_1, 0), 
                
    new Point(sender.Width - sender.Width / p_1, 0), 
                
    new Point(sender.Width, sender.Height / p_1),
                
    new Point(sender.Width, sender.Height - sender.Height / p_1), 
                
    new Point(sender.Width - sender.Width / p_1, sender.Height), 
                
    new Point(sender.Width / p_1, sender.Height),
                
    new Point(0, sender.Height - sender.Height / p_1) },

            (
    float) p_2);

        sender.Region 
    = new Region(oPath);
    }
    复制代码

    在窗体的paint和resize事件中增加:Type(this,20,0.1);  
    参数20和0.1也可以根据自己的需要调整到最佳效
  • 相关阅读:
    点击CheckBox让Gridview控件在编辑与正常状态之间切换
    BMP图片转换为JPEG图片
    ASP.NET截取网页注释行之间的内容
    Mouse点击之后,复制GridView控件的数据行
    Mouse单击高亮GridView数据行
    ASP.NET div信息提示框显示几秒后隐藏
    RDLC报表带搜索与传参数功能演示(ASP.NET MVC)
    ASP.NET MVC应用程序使用axd格式文件
    Nginx通过geo模式实现限速白名单和全局负载均衡
    MySQL 下mysqladmin日常管理命令总结
  • 原文地址:https://www.cnblogs.com/sode/p/2560621.html
Copyright © 2011-2022 走看看