带优美外观的UserControl控件GroupBox

2023-11-14

http://www.myfirm.cn/news/DotNetUserInterface/20080208095730391.html

 

写在前面:如果大家觉得.Net自带的GroupBox控件太差了,样子很不美观,而想用.Net强大的自定义功能来实现定制控件,如,在GroupBox的Title那里加个Button形状的东西,给GroupBox的四周的角都变成圆的,给GroupBox加个背景色,并且有过渡效果。那,请您看看,下面的效果图,是不是您所需要的?就是不是你需要的,但是不是有很大的参考价值?应该是吧。
 

介绍此自定义控件的源网址是:http://www.codeproject.com/KB/miscctrl/grouper.aspx
代码是用C#来写的。在那里,你可以下载到自定义控件的源码,不过,请您尊重作者的原创。

设计剖析
新自定义一个UserControl,然后按GroupBox的样子画出控件。

布局
不继承GroupBox而直接新建一个UserControl控件,需要勇气和技术,GroupBox有如下的部分:标题,也就是GroupBox左上角部分,在此控件中,被打包成一个Button的样子,Button的四个角都是平滑而有弧度的,而且,可以放图片,可以定义控件的固定位置,如UserControl的Left,Top设计好,然后开始画这个Button,而Shadow也是通过画椭圆弧来实现的,Button中的过渡色,可以通过LinearGradientBrush等类提供的方法来实现,Brush中提供了一,二和三维的颜色方案。
GroupBox的角,椭圆弧和Shadow也是这样画出来的,这需要编程者,有比较深厚的GUI经验和耐心的调试。对于GroupBox的内部,使用UserControl默认的容器形式。
根据这样的布局,产生了多个属性的设置,如源背景色,过渡后的背景色,Title的弧度,GroupBox的弧度等。

动作
.Net标准GroupBox本身自带的动作并不是很多,这也是自定义控件在布局做得很强的原因,因为根本不用写动作的。一般只会有Resize的动作,这样,要激发重画的动作。而整个自定义控件设计的画路也是比较的简单的,在OnPaint方法上面做了所有的动作。包括画GroupBox和Button等内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带优美外观的UserControl控件GroupBox 的相关文章

  • 思维导图软件 XMind 2022

    XMind是一个高级且易于使用的思维导图工具 它为您的想法提供了可视化支持 因此您可以更轻松地组织任务或与团队一起参加头脑风暴会议 使用这个易于使用的应用程序创建头脑风暴会议的思维导图 该应用程序包装在具有直观选项的用户友好界面中 XMin
  • 在自动驾驶的领域里面如何玩仿真 【1】 概述和写在前面的一些话

    在自动驾驶的领域里面如何玩sil仿真 1 写在前面的一些话 停了两年 很久没登录CSDN了 之前野心勃勃开的题目随着自己进入一家初创公司开始后就没有时间和精力去更新了 发现这两三年有很多人喜欢这几个都不算太监 甚至头都没有写完 的文章 不少
  • UI设计新手指南之什么是UI设计?

    最直观的 只要用手机 打开界面就会接触到 UI 设计 UI 设计是什么 它是指对软件人机交互 操作逻辑 界面美观的整体设计 UI设计的目的是创造出简单 直观 易于使用的界面 为用户提供良好的体验 随着移动互联网的兴起 UI设计越来越受到重视
  • SPI总线verilog hdl实现(1)SPI通信

    SPI总线传输只需要4根线就能完成 这四根线的作用分别如下 SCK Serial Clock SCK是串行时钟线 作用是Master向Slave传输时钟信号 控制数据交换的时机和速率 MOSI Master Out Slave in 在SP
  • Matlab深度学习笔记——深度学习工具箱说明

    本文是Rasmus Berg Palm发布在Github上的Deep learning toolbox的说明文件 作者对这个工具箱进行了详细的介绍 原文链接 https github com rasmusbergpalm DeepLearn

随机推荐

  • CSS行高line-height默认值normal以及line-height与盒子的关系

  • FindBugs作为eclipse的插件的使用

    目录 1 FindBugs是干嘛的 2 Eclipse如何安装FindBugs插件 3 Eclipse中如何使用FindBugs插件 注 本篇主要是讲FindBugsEclipse插件的使用
  • java连接多个mysql,JAVA:MySql:太多连接

    I think that my application is cursed debug goes where it wants and I don t know why Line by line debugging seems to ana
  • 【GOF23设计模式】_状态模式_UML状态图_酒店系统房间状态_线程对象状态切换JAVA250

    来源 http www bjsxt com 一 S03E250 01 GOF23设计模式 状态模式 UML状态图 酒店系统房间状态 线程对象状态切换 package com test state public interface State
  • 如何高效学习一门新技术

    如何高效学习一门新技术 最近着手学习WCF 举步维艰 故阅读了大量关于学习新技术方法的网页 最终整理如下 一共大家参考 对于这个较大的话题 我们分两个部分介绍 学习新技术的10个建议 和 学习新技术的具体行动 学习新技术的10个建议 尽管我
  • Python视频处理(1)——视频分镜头提取+视频处理

    目录 一 导出帧图像 二 判定相似度 1 均值哈希判定相似度 2 基于直方图相似度 三 视频处理 利用ffmpeg 1 截取视频1分钟 2 视频格式转换 3 多媒体格式转换 4 视频方向处理 5 其他命令代码整理 一 导出帧图像 将视频以帧
  • 关于mysql取余和取整的函数

    MySQL中整除和取余函数分别为 1 整除函数 DIV 或者 双斜杠 使用方法 SELECT 10 DIV 3 返回结果为 3 SELECT 10 3 返回结果为 3 2 取余函数 MOD 或者 百分号 使用方法 SELECT MOD 10
  • loop设备模拟nvme设备

    加载 nvme loop内核模块 需要内核支持 或者自己编译 nvme loop 相关模块 sudo modprobe nvme loop 生成 loop 文件 dd if dev zero of path to nvme fs bs 1M
  • Jenkins ——The server rejected the connection

    启动agent时 报如下错误 信息 Protocol JNLP4 connect encountered an unexpected exception java util concurrent ExecutionException org
  • HTK语音识别中的决策树

    1 为什么需要决策树 我们在使用HTK进行语音识别模型训练的过程中 首先进行的是单音素 单个高斯的模型训练 抛开单个高斯不说 单音素模型本身有很大缺点 没有考虑到本音素前后音素的发音对本音素的影响 比如 同样是一个音素iy 如果它前面的音素
  • 你好,面试官-秋招面经C++持续更新

    C 指针和引用的区别 指针常量和常量指针的区别 sizeof 和 strlen 的区别 const关键字 static关键字 C 中struct和class的区别 new malloc和deete free的区别 宏定义和typedef区别
  • C1 ARMv7-M Debug

    C1 1 Introduction to ARMv7 M debug This section describes the debug architecture for the ARMv7 M architecture profile Th
  • python消消乐游戏界面的实现:

    一 环境介绍 1 Python 版本 Python 消消乐游戏可以在 Python 2 7 和 Python 3 x 版本中运行 2 Pygame 模块 Python 消消乐游戏需要使用 Pygame 模块来实现游戏界面和图形绘制等功能 如
  • DP线和HDMI线区别,优缺点,传输显示器图像速率

    参考DP接口与HDMI接口各有什么优势 哪个更好 资料来源于网络 仅供参考 最近在x宝上买显示器的线 看到各种hdmi dp版本的线 2 0 dp1 4 4k 8k typec转三口hdmi 可把我看昏了 在网上收集了一些资料用于总结 以及
  • QMUI 学习一: 入门,如何添加QMUI框架到 android项目 ,并引入QMUI的主题Theme:

    用是最新的Android Studio 3 6 x的 下了新的QMUI Demo参考学习UI 先上效果图 如何添加QMUI框架并引用它的主题 1 添加框架 在app gradle里面添加依赖 implementation com qmuit
  • 感知器算法实现多类样本的线性分类(Matlab)

    原理 略 步骤 二分类问题 1 将第一类样本作为正样本 第二类样本作为负样本 首先 对样本的向量空间进行增广 即对n维向量x的首部或者尾部增加一个参数1 增广为 n 1 维向量 并对其进行规范化 即正样本不做处理 负样本的 n 1 维向量取
  • web buuctf [极客大挑战 2019]Knife1

    题目给出得信息量是一句话木马 文本里面有一个 菜刀 字眼 可以尝试一下用中国菜刀 现在大部分都是用蚁剑 测试连接 提示成功 将该数据添加到界面上 点进去 点到根目录 在最下面有一个flag文件 点开即可 这道题考点 1 一句话木马 2 中国
  • 液晶显示器汉字字模存储及显示

    一 3 种汉字字模存储和提取的方法 1 字模存放在程序存储器中 这种方法较为常用 针对程序不大或单片机无外部扩展数据存储区功能的情况 2 通过外扩的EEPROM 存储汉字字模数据 将其作为外部数据存储器进行寻址 采用哈佛结构的单片机 如80
  • 罗小黑用flash做的_Flash动画制作小黑人经典动画效果技巧介绍(图文)

    本教程是向大家介绍Flash动画制作小黑人经典动画效果技巧 教程很经典 介绍的非常详细 相信对学习Flash朋友有一定的帮助 转发过来 希望对大家有所帮助 解决思路 小黑人动作是典型的人物动作 我们利用小黑人可以练习我们对人物动作的掌握 因
  • 带优美外观的UserControl控件GroupBox

    http www myfirm cn news DotNetUserInterface 20080208095730391 html 写在前面 如果大家觉得 Net自带的GroupBox控件太差了 样子很不美观 而想用 Net强大的自定义功