`
wsql
  • 浏览: 11810237 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

c#下拉颜色框

 
阅读更多

C#自定义控件一下拉颜色框

效果图:

通过继承ComboBox可以设计出类似C#控件属性栏中的颜色下拉选择框。

添加组件命名为myColorComboBox.cs

第一步:继承ComboBoxpublicpartialclassmyColorComboBox:ComboBox

第二步:构造下拉颜色选择框

privatevoidInitItems()

{

this.DrawMode =DrawMode.OwnerDrawFixed;//手动绘制所有元素

this.DropDownStyle =ComboBoxStyle.DropDownList;//下拉框样式设置为不能编辑

this.Items.Clear();//清空原有项

ArrayallColors =Enum.GetValues(typeof(KnownColor));//获取系统颜色名存入列表

foreach(KnownColorvarinallColors)

{

this.Items.Add(var.ToString());//加载该选项框的子项

}

this.SelectedIndex = 0;

}

在两个构造函数中加入InitItems()

第三步:重写OnDrawItem方法

protectedoverridevoidOnDrawItem(DrawItemEventArgse)

{

if(e.Index >= 0)//判断是否需要重绘

{

stringcolorName =this.Items[e.Index].ToString();//获取颜色名

SolidBrushbrush =newSolidBrush(Color.FromName(colorName));//定义画刷

Fontfont =newFont("宋体", 9);//定义字体

Rectanglerect = e.Bounds;

rect.Inflate(-2, -2);

RectanglerectColor =newRectangle(rect.Location,newSize(20, rect.Height));

e.Graphics.FillRectangle(brush, rectColor);//填充颜色

e.Graphics.DrawRectangle(Pens.Black, rectColor);//绘制边框

e.Graphics.DrawString(colorName, font,Brushes.Black, (rect.X + 22), rect.Y);//绘制文字

}

}

第四步:增加控件属性

///<summary>

///选择的颜色名称

///</summary>

publicstringSelectColorName

{

get{returnthis.Text; }

}

///<summary>

///选择的颜色

///</summary>

publicColorSelectColor

{

get{returnColor.FromName(this.Text); }

}

用法:

直接从控件栏中找到自定义控件myColorComboBox,拖过去自动命名为myColorCombBox1,可以通过myColorCombBox1.SelectColor获取颜色,类型为Color,通过myColorCombBox1.SelectColorName获取用户选定的颜色名。

下面贴出全部代码:

//控件名:myColorComboBox

//作者:刘典武

//时间:2011-06-01

usingSystem;

usingSystem.ComponentModel;

usingSystem.Collections.Generic;

usingSystem.Diagnostics;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Drawing;

namespacemyControl

{

publicpartialclassmyColorComboBox:ComboBox

{

publicmyColorComboBox()

{

InitializeComponent();

InitItems();

}

publicmyColorComboBox(IContainercontainer)

{

container.Add(this);

InitializeComponent();

InitItems();

}

privatevoidInitItems()

{

this.DrawMode =DrawMode.OwnerDrawFixed;//手动绘制所有元素

this.DropDownStyle =ComboBoxStyle.DropDownList;//下拉框样式设置为不能编辑

this.Items.Clear();//清空原有项

ArrayallColors =Enum.GetValues(typeof(KnownColor));//获取系统颜色名存入列表

foreach(KnownColorvarinallColors)

{

this.Items.Add(var.ToString());//加载该选项框的子项

}

this.SelectedIndex = 0;

}

protectedoverridevoidOnDrawItem(DrawItemEventArgse)

{

if(e.Index >= 0)//判断是否需要重绘

{

stringcolorName =this.Items[e.Index].ToString();//获取颜色名

SolidBrushbrush =newSolidBrush(Color.FromName(colorName));//定义画刷

Fontfont =newFont("宋体", 9);//定义字体

Rectanglerect = e.Bounds;

rect.Inflate(-2, -2);

RectanglerectColor =newRectangle(rect.Location,newSize(20, rect.Height));

e.Graphics.FillRectangle(brush, rectColor);//填充颜色

e.Graphics.DrawRectangle(Pens.Black, rectColor);//绘制边框

e.Graphics.DrawString(colorName, font,Brushes.Black, (rect.X + 22), rect.Y);//绘制文字

}

}

///<summary>

///选择的颜色名称

///</summary>

publicstringSelectColorName

{

get{returnthis.Text; }

}

///<summary>

///选择的颜色

///</summary>

publicColorSelectColor

{

get{returnColor.FromName(this.Text); }

}

}

}

分享到:
评论

相关推荐

    多颜色下拉列表框

    多颜色的下拉列表框的实现

    在组合框内实现下拉的颜色拾取框 c#

    在组合框内实现下拉的颜色拾取框,取自codeproject

    C#美化ComboBox的源码,为下拉列表框着色

    摘要:C#源码,控件类库,ComboBox,Select美化 美化ComboBox,为窗体中的下拉列表框各个下拉项着色,这样在数据量较多的时候,更容易区分和取值。  private static Brush[] listBoxBrushes;//该数组用来存储绘制...

    C#简单的颜色选择下拉框

    网上找了很多颜色下拉选择框控件和设计方式,都不太满意。于是自己设计了个简单的颜色下拉选择框。无下拉箭头的颜色下拉选择控件

    C#自定义用户控件

    功能描述:针对各类业务系统B/S的数据录入模式,对微软的控制进行...主要功能有:有得到焦点和失去焦点的颜色,得到焦点下拉日期选择框,数字型、浮点、电话、中文、大小写字母、IP地址等录入框,指定值的ID属性绑定值等

    C#程序开发范例宝典 c#学习

    实例009 带下拉菜单的工具栏...... 9 实例010 具有提示功能的工具栏...... 9 1.3 状态栏设计...... 10 实例011 在状态栏中显示检查框...... 10 实例012 带进度条的状态栏...... 11 实例013 状态栏中加入...

    报表源码Gscr ReportV3.0(C#,VB)

    5.提供丰富的单元格数据类型(或编辑方式):编辑框、下拉列表框、下拉表格、复选框、日期选择框、货币输入框、按钮、进度条、密码等。 6.行列的添加/删除,显示/隐藏、拖动、排序、锁定行列等功能 7.对创建的报表...

    C#设计经典案例设计与实现

    案例3 利用下拉列表框动态查询数据库信息 案例4 利用ListView控件导航数据库信息 案例5 带有数据库的会员登录系统 案例6 动态添加数据库数据信息 案例7 动态修改数据库数据信息 案例8 动态删除数据库数据信息 案例9...

    Visual+C#+2008程序设计经典案例设计与实现.rar

    案例3 利用下拉列表框动态查询数据库信息 案例4 利用ListView控件导航数据库信息 案例5 带有数据库的会员登录系统 案例6 动态添加数据库数据信息 案例7 动态修改数据库数据信息 案例8 动态删除数据库数据信息 案例9...

    Visual C# 2008程序设计经典案例设计与实现

    案例3 利用下拉列表框动态查询数据库信息 案例4 利用ListView控件导航数据库信息 案例5 带有数据库的会员登录系统 案例6 动态添加数据库数据信息 案例7 动态修改数据库数据信息 案例8 动态删除数据库数据信息 ...

    C#全能速查宝典

    2.3.7 ComboBox控件——下拉组合框控件 194 2.3.8 DomainUpDown控件——上下选择控件 195 2.3.9 DropDownStyle属性——指定组合框样式的值 197 2.3.10 GetItemCheckState方法——当前项的复选状态的值 198 2.3.11 ...

    C# 源码 C#2008经典案例

    案例3 利用下拉列表框动态查询数据库信息 案例4 利用ListView控件导航数据库信息 案例5 带有数据库的会员登录系统 案例6 动态添加数据库数据信息 案例7 动态修改数据库数据信息 案例8 动态删除数据库数据信息 案例9...

    C# for CSDN 乱七八糟的看不懂

    C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 ...

    C#开发典型模块大全

    5.2.4 获取指定颜色值和字体样式 97 5.2.5 DataGridView控件的相关应用 97 5.3 设计过程 98 5.3.1 打印信息的设置 98 5.3.2 表格样式的设置 100 5.3.3 打印类的设置 101 5.3.4 打印数据信息 108 第6章...

    C#编程经验技巧宝典

    103 &lt;br&gt;0167 锁定文本框内的文本 103 &lt;br&gt;0168 使用Message.Show输出用户信息 104 &lt;br&gt;5.3 图片数据处理技巧 104 &lt;br&gt;0169 如何将图片存入数据库 104 &lt;br&gt;0170 如何将图片从数据库中读取...

    C#开发典型模块大全(光盘)第二部分

    5.2.4 获取指定颜色值和字体样式 5.2.5 DataGridView控件的相关应用 5.3 设计过程 5.3.1 打印信息的设置 5.3.2 表格样式的设置 5.3.3 打印类的设置 5.3.4 打印数据信息 第6章 决策分析模块 6.1 设计思路 6.2 关键...

    C# WinForm控件美化之ImageComboBox

    这篇文章中我们重点需要实现的是(3)、(4)两项功能,下面我们来介绍具体实现的方法。 第一步,实现ImageComboBoxItem类。 要实现显示图标,当然要给每个项添加与图标相关的信息了,ImageComboBoxItem类应该包括...

Global site tag (gtag.js) - Google Analytics