首先我们先看看效果图

接下来我们看看怎么实现

先把窗体的FromBorderStyle属性改成None。

接下来登录窗体代码代码:

添加一个窗体Paint事件,引用using System.Drawing.Drawing2D;

private void frmLogin_Paint(object sender, PaintEventArgs e)
{
Type(this, 25, 0.1);
}

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);
}

再添加窗体Resize事件

private void frmLogin_Resize(object sender, EventArgs e)
{
Type(this, 25, 0.1);
}

最新文章

  1. iOS对象属性详解
  2. mongodb基本操作的学习
  3. Hibernate操作指南-实体之间的关联关系(基于注解)
  4. LinkedHashMap源码详解
  5. HDU 1069---背包---Monkey and Banana
  6. PDO操作
  7. Struts2中EL表达式取值
  8. [Polymer] Introduction
  9. objective-c 关键字和概念
  10. 使用SoapUI工具做get请求和post请求接口测试
  11. Postman使用小技巧
  12. php命令行生成与读取配置文件
  13. KMP 初级板子 待更新
  14. Kali2018.1
  15. 【LeetCode题解】530_二分搜索树的最小绝对值差
  16. 干货 | 蚂蚁金服是如何实现经典服务化架构往 Service Mesh 方向的演进的?
  17. js-TextArea的换行符处理
  18. UML整体概括
  19. mysql 查询各个阶段所消耗的时间
  20. 内部网络出口防火墙导致TCP类扫描异常

热门文章

  1. Mysql 悲观锁
  2. day21 正则表达式
  3. MT【73】求函数表达式
  4. [树链剖分]hihocoder1883
  5. 自学Linux Shell11.1-shell概述
  6. JavaScript 获得 坐标
  7. yum 安装Mysql
  8. hdu 2844 coins(多重背包 二进制拆分法)
  9. Java中线程池的实现原理-求职必备
  10. 在任意位置获取应用程序CONTEXT