zoukankan      html  css  js  c++  java
  • 利用DOTNETBAR制作圆角窗体和圆角控件

    1、

    如果制作圆角窗体,窗体先继承DOTNETBAR的:public partial class Form2 : DevComponents.DotNetBar.Office2007Form

    然后窗体里加上一个DONTERBAR的panel,然后设置panel为fill占满整个窗体

    然后设置panel的CornerType为Rounded,然后窗体就变为圆角的了: panelEx1.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;

    2、

    如果是圆角控件就照葫芦画瓢,把panel放在控件上面,然后设置为fill,再设置panel的CornerType为Rounded就变为圆角控件了

    DOTNETBAR的button控件默认就可以设置为圆角按钮的

    今天弄个了一天最后弄出了圆角窗体,可是不是用DOTNETBAR,原来DOTNETBAR实现不了,以下是本人实现圆角窗体的代码

     1   /// <summary>
     2         /// 重绘窗体为圆角
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void DispenserForm_Paint(object sender, PaintEventArgs e)
     7         {
     8             Form form = ((Form)sender);
     9             List<Point> list = new List<Point>();
    10             int width = form.Width;
    11             int height = form.Height;
    12 
    13             //左上
    14             list.Add(new Point(0, 5));
    15             list.Add(new Point(1, 5));
    16             list.Add(new Point(1, 3));
    17             list.Add(new Point(2, 3));
    18             list.Add(new Point(2, 2));
    19             list.Add(new Point(3, 2));
    20             list.Add(new Point(3, 1));
    21             list.Add(new Point(5, 1));
    22             list.Add(new Point(5, 0));
    23             //右上
    24             list.Add(new Point(width - 5, 0));
    25             list.Add(new Point(width - 5, 1));
    26             list.Add(new Point(width - 3, 1));
    27             list.Add(new Point(width - 3, 2));
    28             list.Add(new Point(width - 2, 2));
    29             list.Add(new Point(width - 2, 3));
    30             list.Add(new Point(width - 1, 3));
    31             list.Add(new Point(width - 1, 5));
    32             list.Add(new Point(width - 0, 5));
    33             //右下
    34             list.Add(new Point(width - 0, height - 5));
    35             list.Add(new Point(width - 1, height - 5));
    36             list.Add(new Point(width - 1, height - 3));
    37             list.Add(new Point(width - 2, height - 3));
    38             list.Add(new Point(width - 2, height - 2));
    39             list.Add(new Point(width - 3, height - 2));
    40             list.Add(new Point(width - 3, height - 1));
    41             list.Add(new Point(width - 5, height - 1));
    42             list.Add(new Point(width - 5, height - 0));
    43             //左下
    44             list.Add(new Point(5, height - 0));
    45             list.Add(new Point(5, height - 1));
    46             list.Add(new Point(3, height - 1));
    47             list.Add(new Point(3, height - 2));
    48             list.Add(new Point(2, height - 2));
    49             list.Add(new Point(2, height - 3));
    50             list.Add(new Point(1, height - 3));
    51             list.Add(new Point(1, height - 5));
    52             list.Add(new Point(0, height - 5));
    53 
    54             Point[] points = list.ToArray();
    55 
    56             GraphicsPath shape = new GraphicsPath();
    57             shape.AddPolygon(points);
    58 
    59             //将窗体的显示区域设为GraphicsPath的实例
    60             form.Region = new System.Drawing.Region(shape);
    61         }
  • 相关阅读:
    定时器应用(函数封装)
    js中的作用域
    js函数传参
    js数据类型转换
    jQuery总结
    少些招数,多些内力
    浏览器中的标签切换事件
    正则表达式之小有名气
    正则表达式之初入江湖
    详解apply
  • 原文地址:https://www.cnblogs.com/lyhabc/p/2790191.html
Copyright © 2011-2022 走看看