C#为对话框form添加圆弧拐角

2023-12-01 11:32

本文主要是介绍C#为对话框form添加圆弧拐角,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先介绍下圆弧的构造

首先引用

using System.Drawing;
using System.Drawing.Drawing2D;

C# GraphicsPath.AddArc 方法 (Int32, Int32, Int32, Int32, Single, Single)问题

4个int分别表示矩形的左上角X,Y坐标,矩形的宽和高,C#里面画的椭圆的大小是用矩形来定义的,你定义矩形后,绘制的就是矩形的内切椭圆,后面两个为起始角度和终止角度以椭圆弧为中心的极坐标系,正左端为0°,度数逆时针增加,起始角度就是指定弧的起点端点,终止角度就是另一个端点.譬如,起始角度为90°,终止角度为180°,就是右下角的四分之一椭圆
然后重写OnCreateControl方法,将如下代码放在界面文件X.cs中即可,不是X.designer.cs
        protected override void OnCreateControl()
        {
            base.OnCreateControl();
            int rad = 4;
            GraphicsPath path =  new GraphicsPath();
            path.AddArc(0, 0, rad, rad, 90, 180);
            path.AddLine(rad, 0, this.Size.Width - rad, 0);


            path.AddArc(this.Size.Width, 0, rad, rad, 180, 270);
            path.AddLine(this.Size.Width, rad, this.Size.Width, this.Size.Height - rad);


            path.AddArc(this.Size.Width - rad, this.Size.Height - rad, rad, rad, 90, 180);
            path.AddLine(this.Size.Width - rad, this.Size.Height, rad, this.Size.Height);


            path.AddArc(0, this.Size.Height, rad, rad, 180, 90);
            path.AddLine(0, this.Size.Height - rad, 0, rad);
    
                Region region = new Region(path);
                region.Union(path);
                this.Region = region;
  
        }
改善后的图片如下:




这篇关于C#为对话框form添加圆弧拐角的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/440996

相关文章

C# 中变量未赋值能用吗,各种类型的初始值是什么

对于一个局部变量,如果未赋值,是不能使用的 对于属性,未赋值,也能使用有系统默认值,默认值如下: 对于 int 类型,默认值是 0;对于 int? 类型,默认值是 null;对于 bool 类型,默认值是 false;对于 bool? 类型,默认值是 null;对于 string 类型,默认值是 null;对于 string? 类型,哈哈,没有这种写法,会出错;对于 DateTime 类型,默

C#中,decimal类型使用

在Microsoft SQL Server中numeric类型,在C#中使用的时候,需要用decimal类型与其对应,不能使用int等类型。 SQL:numeric C#:decimal

算法与数据结构面试宝典——回溯算法详解(C#,C++)

文章目录 1. 回溯算法的定义及应用场景2. 回溯算法的基本思想3. 递推关系式与回溯算法的建立4. 状态转移方法5. 边界条件与结束条件6. 算法的具体实现过程7. 回溯算法在C#,C++中的实际应用案例C#示例C++示例 8. 总结回溯算法的主要特点与应用价值 回溯算法是一种通过尝试各种可能的组合来找到所有解的算法。这种算法通常用于解决组合问题,如排列、组合、棋盘游

C# 命名管道中客户端访问服务器时,出现“对路径的访问被拒绝”

先还原一下我出现错误的情景:我用C#控制台写了一个命名管道服务器,然后用ASP.NET写了一个客户端访问服务器,运行之后出现了下面的错误: 原因:服务器端的访问权限不够,所以是服务器端的问题,需要增加访问权限。(网上很多都说是文件夹的权限不够,情况不同,不适用于我这种情况) 解决办法: (1)在服务器端相应地方添加以下代码。 PipeSecurity pse = new PipeSec

如何通过示例将旧版 C# 转换为 C# 12

随着 C# 的不断发展,每个新版本都会引入强大的新功能,从而提高语言的功能和可读性。通过从旧版本的 C# 迁移到 C# 12,您可以获得更高效、更易于维护和更具表现力的代码。 由于代码库遗留、公司限制以及对旧语言功能的熟悉,许多开发人员仍在使用旧版本的 C#。升级似乎很困难,但现代版本的 C# 具有显著的优势,例如更好的性能、增强的功能和更高的安全性。 通过增量重构、试点项目和团队培训逐步

C# 日志框架Serilog使用

1、框架和说明        C#日志框架Serilog支持多种场景输出,简单验证了一下,比较方便        包的安装,推荐直接使用“推荐NuGet包管理器”安装Serilog.AspNetCore,常见的组件都已经集成在一个包中,使用比较方便 2、配置文件        Serilog可以由配置文件来定义行为,而且配置文件的修改即时生效。参考配置文件如下: {"Serilog":

示例:推荐一个应用Adorner做的表单对话框

一、目的:开发过程中经常会修改和查看一个Model的数据,一般情况下会自定义一个控件或Window去显示Model数据,但这种数据如果比较多会增加很多开发工作,本文介绍一种通用的方式,应用表达Form控件去简化处理,通常下只需在Model的Property属性上增加一些特性即可定制显示的表单信息和验证信息。 二、实现 显示效果如下  三、环境 VS2022 Net7 四、使用方式

移植对话框MFC

VC版 MFC程序对话框资源移植 以下均拷贝自上面,仅用来记录 (部分有删除) 法1: Eg:将B工程调试好的对话框移植到A工程中 1.资源移植         1.1  在2017打开B工程,在工作区Resource标签页中选中Dialog文件夹下的资源文件,按Ctrl+C或点击Edit->Copy.         1.2. 关闭当前工程,注意不要关闭VC6,打开B工程(File

C#启动另外一个C#程序,并传递参数

第一个程序:             using System.ComponentModel; using System.IO;         private void button1_Click(object sender, EventArgs e)         {             string target = Path.GetDirectory

WinCE的C#程序中获取当前应用程序的路径

WinCE中获取当前路径的两种方法: string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); string appPath = System.IO.Path.GetDirectoryName(System.R