Winform中设置控件边框

本文将会介绍在Winform中如何设置控件的边框,可应用于Form和Panel等。

Panel 控件为例,注册控件的 Paint 事件,使用 DrawBorder 方法来绘制边框。该方法有多个重载,其中最常用的是统一设置边框和分别为四条边单独设置边框。

统一设置边框

使用 ButtonBorderStyle.Solid 枚举项可以直接设置bian'ka

private void panel1_Paint(object sender, PaintEventArgs e)
{
    ControlPaint.DrawBorder(e.Graphics, ClientRectangle, 
           Color.Ivory, ButtonBorderStyle.Solid);
}

单独设置边框

可以为上下左右四条边单独设置边框大小和颜色,这样可以实现四条边不相同的效果。

private void panel1_Paint(object sender, PaintEventArgs e)
{
    ControlPaint.DrawBorder(e.Graphics, panel1.ClientRectangle,
           Color.White, 1, ButtonBorderStyle.Solid, //左边
           Color.White, 1, ButtonBorderStyle.Solid, //上边
           Color.DimGray, 1, ButtonBorderStyle.Solid, //右边
           Color.DimGray, 1, ButtonBorderStyle.Solid);//底边
}
发布时间:2023-10-06
其他阅读

本地部署DeepSeek大模型服务

之前的文章介绍了怎么对接DeepSeek的API实现自己的助手,但是依旧使用的DeepSeek官方服务器,在高峰期还是会出现超长延时的情况,本文介绍另一种思路,通过在本机上部署DeepSeek大模型服务来告别卡顿崩溃。

查看原文

解决sqlite依赖无法打包单文件的问题

在一次WPF开发中,选用了sqlite作为内嵌数据库,使用 ystem.Data.SQLite 库来调用,在使用 Fody 进行单文件打包时,发现打包文成后会出现 x86 和 x64 两个特定的文件夹,分别对应着32位和64位的 SQLite.Interop.dll,本文介绍修改项目文件来实现将 sqlite 通信库一起打包成单文件的方法。

查看原文

记录中文名WPF应用无法启动

今年开春,突然就收到部分用户反馈软件无法启动的问题,沟通后远程查看发现应用刚启动就直接崩溃了,在Windows的事件查看器可以看到应用的崩溃日志,发现是 ucrtbase.dll 模块崩溃,错误代码 0x0000409

查看原文

Angular 中跨分模块后路由复用问题

当我们的 Angular 应用越来越大后,就需要考虑使用模块或者直接使用库来将解体应用,使用时进来懒加载,加快访问速度。当跨分模块后,普通的路由复用策略就是失效,需要额外的解决方法。

查看原文

C#中new和override的区别

在C#编程语言中,new 和 override 是两个重要的关键字,它们用于控制类成员方法的行为。在面向对象编程(OOP)中,理解这两个关键字的区别和用法,对于编写清晰、可维护和高效的代码至关重要。

查看原文