在做尤其desktop software design的时候很多时候方形的button是缺少美感。
这篇文章主要来讲述了如何自定义一个圆形的按钮来触发事件。

第一步:

(图1)
先新建一个class如图1所示
然后代码如下,代码主要利用 system.Drawing.Drawing2D来绘制椭圆(正圆),并且继承了所有按钮的特性。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing.Drawing2D;
using System.Windows.Forms;namespace BillTracking
{class roundButton : Button{protected override void OnPaint(PaintEventArgs pevent){GraphicsPath graphics = new GraphicsPath();graphics.AddEllipse(0, 0, ClientSize.Width, ClientSize.Height);this.Region = new System.Drawing.Region(graphics);base.OnPaint(pevent);base.OnPaint(pevent);}}
}

C#开发实战随笔----001 圆形按钮设计相关推荐

  1. .NET 分布式架构开发实战之二 草稿设计

    前言: 本篇之所以称为草稿设计,是因为设计的都是在纸上完成的.反映了一个思考的过程. 本篇的议题如下: 1) 第一个数据层草图的提出 2) 对数据访问层的思考 3) 第二个数据层草图的提出 1.数据层 ...

  2. 分片表怎么建表_经验放送!后端开发实战笔记之如何设计大数据量表结构

    本文来自用户投稿,作者陈浩翔 上篇文章讲解了传统数据库的一些设计注意点.本篇为第二篇,在大数据量的情况下,如何去提前设计这个表结构,来达到一个比较好的效果.对于团队,对于后续的维护和扩展都带来更大的便 ...

  3. [原创].NET 分布式架构开发实战五 Framework改进篇

    原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章 ...

  4. [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(前篇)...

    .NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(前篇) 前言:这个系列有段时间没有动了.主要是针对大家的反馈在修改代码.在修改的过程中,也有了一些新的体会,这里和大家分享一下,同时也 ...

  5. [原创].NET 分布式架构开发实战之一 故事起源

    阅读: 1320 评论: 18 作者: 小洋(燕洋天工作室) 发表于 2010-05-23 09:03 原文链接 .NET 分布式架构开发实战之一 故事起源 前言:本系列文章主要讲述一个实实在在的项目 ...

  6. [原创].NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略

    .NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略 前言:之前的讨论一直关注在怎么从DAL中获取数据,以及数据的Mapping问题.实际上,一个业务框架最主要的作用就是简化业务 ...

  7. [原创].NET 业务框架开发实战之六 DAL的重构

    .NET 业务框架开发实战之六 DAL的重构 前言:其实这个系列还是之前的".NET 分布式架构开发实战 ",之所以改了名字,主要是因为文章的标题带来了不少的歧义:系列文章中本打算 ...

  8. [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇)...

    .NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) 前言:接着上篇来. 系列文章链接: [原创].NET 分布式架构开发实战之一 故事起源 [原创].NET 分布式架构开发实战之 ...

  9. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

最新文章

  1. 使用putty远程linux服务
  2. MySql外键学习总结
  3. css3中的 @Keyframes
  4. 商标45类分类表明细表_2019版注册商标分类表,商标注册45类范围明细
  5. DE22 Using Laplace Transform to Solve ODEs with Discontinuous Inputs
  6. angularjs post返回html_Python 爬虫网页解析工具lxml.html(二)
  7. 算法——从旋转字符串到翻转单词
  8. 真人拳皇项目第七次Scrum总结——史经浩
  9. java for循环内执行多线程
  10. 卸载 mysql 2008_强力卸载SQL Server 2008图文详解
  11. 用spark统计50年美国最常见的20个名字
  12. 使用 CSS 创建自定义鼠标光标
  13. opengl 知识点2
  14. 大学概率论终极复习攻略
  15. python问题:only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolea
  16. HTML5期末大作业:电影网站设计——电影资讯博客(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码
  17. 数据库MySQL8.0.31更改密码
  18. React Native常用第三方组件汇总【建议收藏】
  19. 单位及主管部门同意报考证明单位不同意怎么办
  20. mysql查询权限show grants_[MySQL]查看用户权限与GRANT用法

热门文章

  1. GPT-4来了,业财税融的Copilot还会远么?| 2023百望云数字商业创新峰会上海站分享
  2. 数据结构面试大全(二) - [算法]
  3. 【RFC5246 TLS 协议1.2】(全文翻译+小部分缩译)
  4. php ajax局部刷新div,php与ajax局部刷新的简单示例
  5. visio常用快捷键_Visio 快捷键
  6. JAVA专辑鉴赏网站计算机毕业设计Mybatis+系统+数据库+调试部署
  7. mac 修改系统配置参数 主机名 等
  8. 【OpenCV】用OpenCV进行大恒CG400CG410视频采集卡的视频读取
  9. Excel取中间几个字符
  10. 【Java从零到架构师第1季】【并发 Concurrent 03】线程间通信_ReentrantLock_线程池