• winform 窗体设置成无边框、可拖拽、四周圆角


    最近做一个及时通讯系统的登录界面,现在将界面用到的无边框、可拖拽、四周圆角的方法分享如下:

    1、无边框的窗体: 把FormBorderStyle的属性设置为none

    2、可拖拽:private Point mPoint = new Point();

            private void FormLogin_MouseDown(object sender, MouseEventArgs e)
            {
                mPoint.X = e.X;
                mPoint.Y = e.Y;
            }

            private void FormLogin_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    Point myPosittion = MousePosition;
                    myPosittion.Offset(-mPoint.X, -mPoint.Y);
                    Location = myPosittion;
                }
            }

    3、四周圆角:       

      private void FormLogin_Resize(object sender, EventArgs e)
            {
                SetWindowRegion();
            }

           public void SetWindowRegion()
            {
                System.Drawing.Drawing2D.GraphicsPath FormPath;
                FormPath = new System.Drawing.Drawing2D.GraphicsPath();
                Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);
                FormPath = GetRoundedRectPath(rect, 10);
                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;
            }

  • 相关阅读:
    8、【C++基础】内存管理
    7、【C++基础】内联函数、友元函数
    5、【C++基础】强制类型转换
    4、【C++基础】引用和指针
    3、【C++基础】基本的输入输出
    2、【C++基础】命名空间
    1、【C++基础】bool数据类型
    13、【C语言基础】预处理器、头文件
    6、git常用命令总结
    5、git标签管理
  • 原文地址:https://www.cnblogs.com/xiaolong617/p/3237774.html
Copyright © 2020-2023  润新知