C# WinForm开发系列 - CheckBox/Button/Label/ProgressBar

简介:

   包含自定义颜色显示的CheckBox,水晶效果按钮,透明圆角Label,Vista效果的ProgressBar等控件(文章及相关代码搜集自网络,仅供参考学习,版权属于原作者! ).

1.自定义颜色显示的CheckBox coloredcheckcontrols.zip


2.逼真的仿Vista效果的按钮控件 crystalbutton.rar  VistaButton.rar

 

3.全定制的XP风格进度条

XpProgressBar功能特征

1. 不怎么占用CPU资源,因为使用了双缓冲的原因 
2. 双缓冲提供了很好的平滑处理,不会闪烁 
3. 文字使用Anti alias效果,更加好看
4. 使用文字阴影
5. 全定制功能

4.显示文字并能嵌入状态栏的进度条控件

5.A Rotator Control for WinForms

6.透明背景的垂直Label控件

翻译
randz. 著Extended Vertical Label Control in C# .NET

简介
本文描述如何在c#中创建一个透明背景色的垂直label用户控件。该用户控件允许你从底部或顶部开始绘制文字。

本文是Vertical Label Control in VB.NET的延续。其实,更准确的说,我是把他的工作翻译到C#中,并添加了从下向上显示文字的功能。另外,支持背景透明。

7.字体镶边的Label控件

翻译
cesarsouza. 著A Simple Label-like Control with Border Effect

简介

当我在做一些界面设计的时候,我发现我需要一种类似在字体周边加上边框的效果。不幸的是,不但.NET没有提供这种给字体镶上边框的效果,而且,我也没法在网上找到任何一个免费的实现。于是,我决定自己做一个。

 背景

开始,我打算通过在屏幕上绘制两次不同大小的文字来实现它。后来,我就把这篇文章发表到CodeProject上,并期望能有谁提出一个更好的解决办法。结果也真是如此,fwsouthern提出了很好的建议。主要的思想还是一样的,不过不再采用重叠文字的方法了,转而,采用GraphicPath, Brush以及其它效果,当然,后一种方法明显好多了。

我对于GDI+没有什么经验,不知道如何直接在屏幕上绘制图像,于是学习了Bob Powell的入门方法。

创建代码

现在,开始编码了,首先,我创建了一个继承于System.Windows.Forms.Control的组件,然后,重写了其OnPaint方法,添加了几个新的属性,以使其更有点label-like的感觉。

8.使用Vista风格的控件.NET 2.0

9.透明背景色的可定制移动字体Label控件

10.C#中Vista风格的进度条

11.类似于WinRAR压缩进度条 rarprogressbar.rar

12.自定义的OptionGroup OptionGroup.rar

13.SplitButton SplitButton.rar

14.垂直进度条控件 VerticalProgressBar.rar

15.程序加载时的旋转进度圈组件

[翻译]

Martin Gagne.How to write a loading circle animation in .NET?

[简介]

以前,大家都采用一个进度条显示程序正在加载。不过,这已经不再流行了。

看看SQL Server Management Studio ExpressWindows Media CenterEncarta 2006Firefox/IE7 加载页面时,都是采用一个不断旋转的圆,以显示程序正在载入。

程序加载时的旋转圈组件

16.多任务状态显示进度条列表(Vista风格,酷)

【翻译】

Igor VelikorossovStatus List

简介

本文的灵感来源于Shapour所写的文章"Status List - Vista Style"。

写这个项目和文章的原因是:
1.原来的项目是用VB.NET写的,不过我是一个C#的开发人员(尽管我经常而且能够很顺利地读VB或其它语言的代码,我还是忍不住想把它写出来)。
2.我发现原控件有不少的限制,因此决定修改并改进这个项目。

仿Vista多任务进度条

改进的地方

本项目的改进之处如下:
StatusItem类称为Control的一个派生类,意味着它将继承父类Control的所有很好的特点。之所以做这些改动的原因是:这样能够使用item本身的paint,还不是由StatusList执行paint,这是更面向对象的方法。这个方法,还使得增加其它控件到其中,成为可能。(我还没有进一步测试这个假设,不过在我写这篇文章的时候,它真的可以。)

- 我不希望在任务item比较多的时候,如果向下滚动,就会隐藏掉头信息(heading)。我希望这条heading会一直可见。工程中也提供了一个隐藏heading的接口,如果你不需要的话,你可以隐藏掉heading。

- 我个人认为在list中的所有item应该是一个宽度的,这样看着更好看一些。你可以在设计器里移动或改变单个Item,不过控件会自动重新布置这些item。

- 我已经增加了一些事件:StatusItemAddedStatusItemRemoved 和StatusItemStatusChanged,它们将给你足够的跟踪每一个item状态的适应

不同运行状态的任务

  


代码使用

代码的使用非常直接、简单,引用链接库(或直接加到你的VS IDE的toolbox上),然后在你的form上增加这个控件。属性控制器里,控件会展现足够的设置属性。

兴趣点


一个更妙的设计是给item容易加上3D框。你可以从StatusItemPane.cs中了解更多。
好笑的是,当我受困于这个设计,并花了好几个小时把它做出来之后,我发现最终的UI并不是我想要的那样。因此,默认情况下,边框是不被显示的。

还有好多的功能可以改进的(改善永无止境)。其中一个是StatusItem的一些虚拟属性(如图象,前景色)可以从对象中移出,单独放在一个类型的对象里。但,我想这就留给你来完成吧,或者在将来的某个时候再修改它(如果对它有足够的兴趣的话)。

我希望如果容器中的item比较多,用户能够使用鼠标滚轮滚动这些item。然而,至今为止,我还没有足够的时间在这个方向上做一些研究。如果谁有这样的解决方案,我愿意洗耳恭听。

历史

2007-04-23: 版本 1.0.0.0.

Credits
感谢Shapour的起源的思路。


原文作者Igor Velikorossov

点击此处看Igor Velikorossov的个人描述



本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2009/06/07/1498173.html,如需转载请自行联系原作者。


 


目录
相关文章
|
1月前
|
物联网 数据处理 C#
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据。在自动化、物联网以及工业控制行业中,上位机开发是一项重要的技能。本教程主要介绍使用C#进行上位机开发,重点在于串口通信和数据处理。
294 82
|
3月前
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
110 12
|
3月前
|
Linux C# iOS开发
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
77 12
|
4月前
|
前端开发 JavaScript 安全
C#一分钟浅谈:Blazor WebAssembly 开发
Blazor WebAssembly 是一个客户端框架,允许开发者使用C#和Razor语法构建Web应用。本文介绍了Blazor WebAssembly的基本概念、常见问题及解决方案,包括路由配置、数据绑定、异步操作、状态管理和性能优化等方面的内容,并分享了一些易错点及如何避免的方法。希望这些内容能帮助你在Blazor WebAssembly开发中少走弯路,提高开发效率。
168 51
|
4月前
|
缓存 C# 开发者
C# 一分钟浅谈:Blazor Server 端开发
本文介绍了 Blazor Server,一种基于 .NET 的 Web 开发模型,允许使用 C# 和 Razor 语法构建交互式 Web 应用。文章从基础概念、创建应用、常见问题及解决方案、易错点及避免方法等方面详细讲解,帮助开发者快速上手并提高开发效率。
110 2
|
4月前
|
开发框架 缓存 .NET
C# 一分钟浅谈:Blazor Server 端开发
Blazor Server 是基于 ASP.NET Core 的框架,允许使用 C# 和 Razor 语法构建交互式 Web 应用。本文介绍 Blazor Server 的基本概念、快速入门、常见问题及解决方案,帮助开发者快速上手。涵盖创建应用、基本组件、数据绑定、状态管理、跨组件通信、错误处理和性能优化等内容。
228 1
|
4月前
|
测试技术 Go C#
C#一分钟浅谈:ReSharper 插件增强开发效率
【10月更文挑战第25天】ReSharper 是 JetBrains 开发的一款 Visual Studio 插件,旨在提高 .NET 开发者的生产力。它通过代码分析、重构、导航等功能,帮助开发者避免常见错误,提升代码质量和开发效率。本文将通过具体代码案例,详细介绍 ReSharper 的常见功能及其应用。
113 1
|
4月前
|
C# Python
使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
【10月更文挑战第30天】使用 `wxPython` 开发跨平台桌面应用时,可以通过创建辅助类来模拟 C# 扩展函数的功能。具体步骤包括:1. 创建辅助类 `WxWidgetHelpers`;2. 在该类中定义静态方法,如 `set_button_color`;3. 在应用中调用这些方法。这种方法提高了代码的可读性和可维护性,无需修改 `wxPython` 库即可为控件添加自定义功能。但需要注意显式调用方法和避免命名冲突。
|
5月前
|
设计模式 程序员 C#
C# 使用 WinForm MDI 模式管理多个子窗体程序的详细步骤
WinForm MDI 模式就像是有超能力一般,让多个子窗体井然有序地排列在一个主窗体之下,既美观又实用。不过,也要小心管理好子窗体们的生命周期哦,否则一不小心就会出现一些意想不到的小bug
447 0
|
4月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
72 3