![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
02自定义控件
文章平均质量分 59
csharp_start
写写程序踢踢球!
展开
-
AutoDesignReport(报表设计器)创作进展
一.当前进展截图 设置数据源原创 2008-12-25 14:54:00 · 499 阅读 · 0 评论 -
线条控件--JcsLineControl
一.引子 VS中没有了VB中的线条控件,虽然我没有用过VB,不过却看到过这个控件在VB环境下的效果.在一些情况下,或许我们还真的要用到这样的控件,那么索性就自己写了一个.二.设计时效果三.运行时效果四.简单谈谈实现思路 因为实现的比较简单,所以只是通过设置一个角度的属性来调整整个线条的倾斜角度,同时使用一个路径来记录这个线条的4个端点,最后将控件的Region原创 2008-04-10 22:45:00 · 2038 阅读 · 0 评论 -
制作只允许输入数字的NumericTextBox(包括指定精确度,是否允许负数等)
制作只允许输入数字的NumericTextBox(包括指定精确度,是否允许负数等)原创 2008-01-19 16:29:00 · 872 阅读 · 0 评论 -
WinForm--制作圆形按钮
一.设计时效果二.运行时效果三.简单的实现思路 因为在最近的项目中要用到类似效果的控件,所以就索性做了一个.原理很简单,实现的代码不超过250行.继承control类,然后在onpaint方法中来绘制按钮效果,指定Region,同时,要在Onmousedown,Onmouseenter,Onmouseup,Onmouseleave,OnResize,OnLostFocus原创 2008-04-05 00:01:00 · 4805 阅读 · 8 评论 -
MDI窗体控制台Form
一.引子: 在WINFORM的开发中,会时常用到MDI窗体,有时候我们会因为这个MDI没有办法方便容易的设置背景,图标,workflow等等发愁。如果我们直接把控件放到主窗体上,那么你打开了子窗体就会被这些控件遮挡住。也许你可以使用设置这些控件的visible = false等的方法来解决,但总觉得不好。而且,如果你需要一个类型永远在最下面的FORM,而这个FORM可以让你放置任意控件都不会遮原创 2008-01-10 17:42:00 · 1983 阅读 · 0 评论 -
UI系列--JcsToolList控件(类似VS2003的ToolBox)
一.引子 这个控件是追求UI美化功能的产物.效果类似于VS2003的ToolBox,虽然程序的实现方法,功能与效率是软件追求的目标,不过,商业化的软件,缺乏美感总显得不那么专业.二.设计时效果三.运行时效果四.谈谈主要的实现思路 应该说,这个控件的实现方法与我以前的文章JCSTOOLBOX很相似,只是在布局,以及超出部分的调整上有所不同.因为控件采用完全绘制的方法原创 2008-03-21 00:07:00 · 1610 阅读 · 0 评论 -
UI系列--主窗口的设计布局
引子: 我们在做系统时,总要有一个主窗体,作为整个系统的操作入口.那么怎么样作到比较优美和简洁的布局设计呢,我这里有几个效果,希望可以给大家参考一下.如果哪位朋友对购买源代码感兴趣可以发邮件到heqiumie@tom.com联系我!原创 2008-03-21 18:37:00 · 1255 阅读 · 1 评论 -
创建可隐藏的工具栏JcsToolBoxWindow
暂时还没有全部完成,绘制的工作已经全部OK,事件的处理还在进行中,先把效果发出来下.一.设计时效果: 二.运行时效果:三.简单谈谈设计思路:由于这段时间工作比较忙,谢谢c#代码的时间很好,所以直到昨天才把本来很少的代码完成.现在谈谈主要的实现思路.这个控件同样是一个复合控件,由一个Captiontop(继承自panel的控件),与一个jcstoolbox组成原创 2007-12-14 17:14:00 · 1154 阅读 · 0 评论 -
制作类似VS多选项卡的窗体布局控件
引子:这个控件的功能是为了达到窗体显示的多选项卡式样管理,采用了类似Tabcontrol的效果来管理窗体. 一.设计时效果二.运行时效果三.简单谈谈实现思路 应该说这是一个绘制窗体管理样式的控件.由2个部分组成.一部分就是绘制窗体名称的控件,另一部分就是显示窗体的Panel,在这个Panel中,我们将Form以Toplevel = false的设置后加入Panel原创 2008-03-09 18:14:00 · 3335 阅读 · 5 评论 -
WinForm--图表控件(第一步:柱状图)
一.引子 突然自己也想亲自来实现绘制常用图表的控件,因为看了几个别人的作品,要么觉得太冗繁,要么觉得过于简单.索性尝试一下,因为打算可以实现柱状图,饼图,点图,折线图等几种常见的图表,所以准备在一个控件里完成.时间有限,才刚刚开始,刚刚把柱状图做完,呵呵.二.设计时效果三.运行时效果四.简单谈谈实现思路 完全是绘制出来的,有主标题,副标题,数据源,显示字段,值原创 2008-04-11 22:42:00 · 7034 阅读 · 3 评论 -
Label立体字体效果
一.效果图二.简单谈谈实现思路 应该说实现方法还是很简单的,就是错位绘制而已.当然,这种效果没有完全体现出字体的立体效果,只是一种错位模仿,在对字体的边框进行描边后,又移动了一下绘制的坐标来体现阴影.感兴趣的朋友应该很容易实现.这里就不多说了.三.部分源代码 using System;using System.Collections.Generic;原创 2008-07-06 21:03:00 · 2167 阅读 · 0 评论 -
AutoDesignReport(报表设计器)创作进展(二)
因为最近事情比较多,加上自己这段时间也比较懒惰,所以这个东西进展的比较缓慢.从第一个版本到目前这个版本,我作出了比较大的调整.主要是考虑到分组项的布局问题.因为在设计报表时,可能会不止一个组,而一旦新增了分组,就要对当前所有的分区的布局作出调整,使得他们合理的进行排序.我之前考虑使用容器控件的AutoScroll属性,不过效果不甚理想,后来索性直接来写代码来排序他们,这样效果反而更好(在排序前请原创 2009-02-15 19:46:00 · 711 阅读 · 1 评论 -
Winform--JcsToolBox换肤改进
一.说明 主要是将原本Control色的背景做了渐变处理,看起来更美观。添加了展开分组项的背景突出显示的效果。其他功能未变化。二.效果图原创 2008-10-31 11:53:00 · 805 阅读 · 1 评论 -
WinForm--进度加载等待控件
一.设计时与运行时效果 二.部分源代码 protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (_list.Count == 0 && _paintStyle !原创 2008-09-26 15:27:00 · 3195 阅读 · 1 评论 -
制作类似VS2008起始页中的列表框
一.引子 在VS2008的起始页中,有一种控件类似我们常用的列表框,可以显示图片,有超链接功能,有的还有按钮,可以创建或打开项目。它的效果比较好看,在一些场合还是有比较多的使用机会。我利用这2天的闲暇时间也仿照它做了个类似的控件。 该控件可以设计时添加子项,可以提供类似超链接的点击效果,显示不下时支持滚动条的滚动(支持鼠标滑轮滚动),在选中子项后,支持突出显示选中项边框。提供I原创 2008-09-19 12:44:00 · 3891 阅读 · 3 评论 -
WinForm图表控件-柱状图扩展
一.扩展说明 好久没有写Blog了,索性将以前做的柱状图做了下立体效果的扩展,贴出来做为自己懒惰的一种提示。二.设计时效果三.运行时效果四.部分源代码 private void DrawSolidHistogram(Graphics g) { Rectangle rect = this.GetClientRect();原创 2008-06-02 17:24:00 · 4791 阅读 · 0 评论 -
WinForm--使用可拖动/缩放控件的容器建立用户报表设计器
一.引子 定制的报表格式不能完全满足客户的使用要求,这个时候,我们通常会采用2种方式来解决问题。 第一,仍然是让用户提供报表的要求,由软件编写人员来添加报表功能。 第二,提供给用户一个可以自己设计报表布局与展现内容的报表平台,来让客户自己添加。 至于这两种方式孰优孰劣,这里不做讨论。只是借这个问题,采用第二种途径,设计一个用户报表设计器原创 2008-08-21 14:56:00 · 3042 阅读 · 3 评论 -
枚举所有字体的Combobox控件
一.引子 因为一个同事要这个功能的combobox,索性就在网上查了下相关代码,最后借鉴了一些国内国外朋友的方法,把这些字体加载到了Combobox中,并在前面绘制了一些符号.同时,将一些不符合要求的FontStyle样式做了调整,使得全部的string转化为Font时都变的可用.二.全部源代码using System;using System.Collections.原创 2008-07-24 21:54:00 · 1532 阅读 · 1 评论 -
DataGridView绘制N层表头
一.设计时效果 二.运行时效果1.表头立体效果2.平面表头效果三.简单谈谈实现原理和前面的"也谈自动合计的Grid"原理类似,都是通过在一个control上绘制来达到目的,因为比较了内嵌控件或直接在DataGridView的列头上绘制的方法,都觉得不是很好或很容易实现,所以索性就直接在其他控件上实现了.当前可以作到实现任意层级的表头绘制,并且,当在用鼠标调整原创 2008-07-22 18:00:00 · 2299 阅读 · 2 评论 -
WinForm绘制工具树JcsToolBox
一.设计时效果:二.运行时效果:三.简单谈谈设计思路:与以往不同的是,它的主体是一个完全绘制出来的控件,不象我前面写的工具树容器,是在一个容器中通过设置控件的相对位置来达到效果.首先建立基础元素类,元素类(继承自基础元素类),元素集合类,分组元素类(继承自基础元素类),分组元素集合类.最后来实现工具树.通过重写OnPaint,OnResize,OnMouseDo原创 2007-12-13 12:05:00 · 941 阅读 · 0 评论 -
制作日历管理程序--第一步,周控制台
一.设计时效果 二.运行时效果 三.当前实现功能1.鼠标点击左右调整按钮周数的变化2.鼠标移动到某一天上时日期颜色的变化3.当前系统时间上显示的变化.4.鼠标点击某一日期的颜色变化,并更改当前选定SelectedDate属性值.原创 2008-03-01 17:30:00 · 895 阅读 · 0 评论 -
制作日历管理程序--第二步,完成程序
一.运行时效果二.简单的谈谈实现思路 当前的这个控件,是完全绘制出来的,主要包含2个部分,一个就是我在前边提到的"周控制台",这个控制台本身也是一个控件,在里面主要包含了一个属性SelectedDate,这个日期,将会作为传入下面实际显示日程安排的控件.第二就是这个显示具体日程安排的控件了,这个控件按照传入的具体一天的时间(可以定制),根据工作开始时间与结束时间等等信息,使用原创 2008-03-04 14:12:00 · 1545 阅读 · 1 评论 -
制作带有伸缩按钮的容器
一.设计时效果:二.运行时效果:1)展开时效果:2)收缩时效果: 三.谈谈设计思路:这个可以伸缩的容器很类似QQ游戏中的那个扩展按钮容器,如下图所示,实现的原理相当的简单,一样是在mousedown,mouseup,mousemove等事件中判断鼠标的相对位置与操作,然后在onpaint方法中对不同状态绘制不同的图片与线段.如果哪位朋友感兴趣,欢迎一起讨论原创 2007-11-07 17:38:00 · 1026 阅读 · 0 评论 -
使用JcsNumberTextBox控件构建只允许输入数字并可以控制精度的数据列JcsNumTextBoxColumn
一.引子当我们在做WinForm的数据库开发时,时常会用到datagridview控件来显示数据.在提供数据交互的时候,常常希望可以对用户输入的数据进行校验.对于一些类似金额的字段,要求只允许输入数字,并且要控制精度.这个时候,我们通常会想到2种解决方法.其一,就是先任随用户输入,然后在Invalidating或lostfocus等事件中做验证并提示.其二,就是我这里所演示的方法,就是直接控制原创 2008-01-22 14:08:00 · 1694 阅读 · 0 评论 -
制作类似QQ的FORM外观
一.设计时效果:二.运行时效果:下图是放置了控件后的效果.下图是最大化按钮不可用时的效果:三.主要实现的功能:1.FORM皮肤的切换(也就是颜色的变换,切换的时候使用不同的图片);2.最大化,最小化,恢复,关闭等按钮的基本操作.3.双击标题栏相应缩小或放大FORM.4.拉伸FORM做相应的大小变化.(暂时还没有找到最理想的处理方法.当前处理的时候采原创 2007-11-02 17:09:00 · 1799 阅读 · 0 评论 -
制作横线输入的文本框.
一.运行效果如下图: 二.实现原理.因为类似TextBox与RichTextbox之类的复杂文本显示控件,其ONPAINT方法似乎是被屏蔽了,它们被统一做了处理,而不让用户做过多的干涉.所以这里考虑在Wndpro方法中监视paint消息,然后做绘制线条处理.三.源代码.using System;using System.Collections.Generic;using Sys原创 2007-10-08 11:40:00 · 1465 阅读 · 0 评论 -
制作类似VS工具条的工具树容器
十一前就开始准备做了,不过一到放假就发现自己懒了,哈哈,现在就把效果图片发上来给大家看看,并谈谈关键部分的代码.一.设计时效果二.运行时效果1)有3个选项页时的运行效果.2).选项页比较多的时候,在底端对齐后的效果.3).变换了渐变色后的效果.三.谈谈设计的实现原理:制作这个控件需要由2个主要的部分组成.一是容器,二是容器里面显示的选项页.选项页是一个原创 2007-10-05 17:27:00 · 2135 阅读 · 0 评论 -
绘制普通的可上下左右布局的RULER
效果如下:简单谈下设计思路:应该说绘制上和下的标尺没有分别.左和右的标尺无非就是绘制文字和刻度时横纵坐标的调整而已.绘制刻度的单位是象素.因为很可能在以后的使用中会同时需要使用dock = top和dock = left的两个标尺,组成坐标系,所以为了使他们的点不交叉,提供了一个MoveValue的属性,让他们的原点移动指定值后开始绘制.因为绘制的方法很简单, 下面直接给出代码:原创 2007-09-30 09:30:00 · 887 阅读 · 0 评论 -
也谈自动合计的GRID
合计时效果如下:平均值时的效果:文字显示时的效果:因为一些原因源代码不能完全公布,所以这里只谈下实现思路:因为datagridview控件本身没有自动合计的功能,而在每次绑定时向网格底部插入一空行实现合计的办法既不方便又不灵活,而且不能达到时刻可以看到合计的效果,必须每次都手动拖动滚动条到底端来看,所以这种实现办法不够理想.就想了以下一种方法来实现.用一个PANEL和一个原创 2007-09-30 09:52:00 · 2036 阅读 · 1 评论 -
也谈制作带行号的Richtextbox
以上是设计时的效果图,下面是运行时效果图:控件实现的主要功能: 序号 描述 1 自动计算行高绘制序号(回车,输入,粘贴,鼠标移动,键盘移动都没有问题)原创 2007-09-30 08:58:00 · 3523 阅读 · 1 评论 -
修正--NumericTextBox
一.修正说明主要是针对0在控件中的输入情况做出了调整.在selectionstart = 0的时候,如果text.length ! =0,那么将限制对0的输入.同样,对于类似0.19,中光标位于0后边的情况,同样不允许输入0.二.源代码 using System;using System.Collections.Generic;using System.ComponentMod原创 2008-01-25 09:58:00 · 1071 阅读 · 0 评论 -
制作类似monthcalendar的控件
一.设计时效果二.运行时效果 三.简单谈谈设计思路:实现的功能:1.显示指定的年度月份的日历.调整按钮提供调整月份的功能并及时刷新显示的值.2.提供鼠标在移动到这些日期上的时候显示醒目颜色的功能.3.提供鼠标选中日期后以醒目颜色显示的功能.4.提供选中日期后键盘上下左右移动的功能.(呵呵,在下午5点多的时候终于实现键盘上下左右移动后更换月份显示的功能了原创 2007-11-13 12:16:00 · 2038 阅读 · 7 评论 -
制作类似Listbox的容器
一.设计时效果:二.运行时效果: 三.简单谈谈实现思路:由于昨天时间比较紧张,没有把全部的功能都做完善就发布出来了,今天把键盘操作给加上了,并修改了一些操作上的小BUG.将一些不必要显示在设计时的属性全部隐藏掉了.这个控件实现起来比较简单,主要由3部分组成,1为一个元素类,主要实现了BOUNDS属性,以及实际的绘制每个元素的过程.2为一个集合类,这个类来管理储原创 2007-12-06 17:07:00 · 982 阅读 · 0 评论 -
扩展--制作类似monthcalendar的控件
一.扩展说明 本次扩展,新增直接对Year和Month的调整.其中,Year部分,通过TextBox来定位调整;Month部分,采用右键菜单勾选.二.运行时效果 三.扩展代码 主要是定义了一个TextBox,一个contextMenu来完成操作,以下是代码片段: private void HideEditTextBox() ...{原创 2008-02-20 12:19:00 · 1076 阅读 · 1 评论 -
制作显示多列的Combobox控件
一.设计时效果二.运行时效果三.简单谈谈设计思路同样地,类似上篇文章制作DataTimePicker,这里制作的控件无非是一个复合控件显示在一个列表框下.主要实现的功能包括双击选中行返回,键盘回车后返回当前行,将返回行的信息用分隔符号组合起来的字符串显示在combobox 的text中.感性趣的朋友可以发mail给我.四.部分源代码 void Fil原创 2007-12-03 12:03:00 · 3820 阅读 · 20 评论 -
WinForm下创建自己的DateTimePicker
一.设计时效果:二.运行时效果:三.简单谈谈设计思路:如果有的朋友有看过前面的我的文章制作自己的MonthCalendar的话,就应该会了解制作这个DateTimePicer可能要克服的困难在于2个方面,一个就是我前面实现了的MonthCalendar,另外一个就是如何用一个复合控件,如上图的效果来把textbox与MonthCalendar的功能集成到一起。我在这里原创 2007-11-26 16:02:00 · 4629 阅读 · 0 评论 -
WinForm--下拉按钮显示省略号的Combobox
WinForm--下拉按钮显示省略号的Combobox原创 2008-02-18 15:48:00 · 991 阅读 · 0 评论 -
扩展:WinForm下绘制工具树JCSToolBox
一.扩展说明 该次扩展,针对配色方案做了增加,新增了渐变色"JCS经典蓝色",同时拟对控制只允许展开一个分组项进行扩展,该扩展完成后,将达到只允许展开一个分组项的要求,并且把其他的分组项在指定位置排列.二.设计时效果三.运行时效果四.代码改动说明当前,代码改动仅仅局限于配色方案.待对分组项展开进行控制后再公布关键代码.原创 2008-02-19 09:45:00 · 671 阅读 · 0 评论 -
可移动缩放控件的容器
一.设计时效果二.运行时效果三.主要功能1.选中后显示聚焦框,与缩放的8个焦点。2.鼠标移动到右侧,右下角,下方的指定区域时,显示相应的缩放的光标。3.鼠标移动到指定的顶部区域内时(并且为选中状态),可以对控件进行移动。4.可以对控件进行缩放,在缩放的过程中显示可逆的边框。5.容器中的控件提供动态的加入(暂不具备设计时加入后的响应功能),动态的删除。原创 2008-02-04 12:42:00 · 1286 阅读 · 2 评论 -
实现在控件容器中加入可以激活标题栏的FORM
一.运行时效果二.引子我们通常要么在MDI窗体中处理类似的问题,要么采用设置toplevel = false的方式,将FORM做为control来add到容器中。不过,如果我们在add 到控件容器中的时候,form的标题栏是不能够激活的(也就是FORM被选中时,并没有高亮显示标题栏),那么如何可以达到这种效果呢,我想到了使用API函数SetParent,本文就是创建一个这样的控件容器。原创 2008-02-01 18:14:00 · 973 阅读 · 0 评论