Winform中设置控件边框

发布时间:2023-10-06

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

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

统一设置边框

使用 ButtonBorderStyle.Solid 枚举项可以直接设置边框

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);//底边
}
其他阅读

Web前端中实现自定义右键菜单

在原生的桌面应用中,右键菜单是个很常见也很常用的东西,但是在Web应用中,由于浏览器自带了右键菜单,所以我们很少见到应用有自己的右键菜单,但不常见并不代表没有,本文就会介绍一个右键菜单的实现。

查看原文

记录一次Unity中的同步问题

在以前做的数字孪生应用中,使用的 socket 进行定制协议开发,服务和 Unity 客户端之间可以互相进行通信,在开发时代价太大,除了正常制定数据协议外,还需要针对粘包定制切包协议。在WEB化的过程中,准备把原有的数字孪生服务端进行迁移,使用全新的 asp.net core 进行开发,双方使用 signalR 进行数据交互。

查看原文

使用表达式树来提高反射的性能

反射是C#中一种常用的技术,反射提供了动态创建和访问对象的基础,但是反射在带来了极强的灵活性的同时,也带了极大的性能损耗,本文就介绍通过表达式树来提高反射过程中的性能。

查看原文

Winsaa 解锁 Windows 时间管理新姿势

了解自我时间分配,从记录每一秒开始。Winsaa 是轻码科技推出的一款 Windows 屏幕应用使用分析软件,它自动精准追踪每个应用的使用时长,并生成可视化报告,帮助你提升工作与学习效率。

查看原文

命令行打包.net项目

.net 日常开发中,我们接触最多的就是 Visual Studio ,它是微软为了 .net 平台专门打造的 IDE (集成开发环境),为整个 .net 平台开发带来了无与伦比的图形化体验,但是有时候,我们也会遇到需要通过命令行来生成 .net 项目的情况,本文会介绍几种命令行打包的姿势。

查看原文