在comboBox中,实现自定义加载项需要设定以下俩个内容。
1,comboBox1.DrawMode=OwerDrawFixed; //即设定组合框的加载方式为手动加载。
2,重写comboBox的Draw_Item事件。
private void Form1_Load(object sender, EventArgs e)
{
Array allColors = Enum.GetValues(typeof(KnownColor)); //获得系统颜色集合
foreach (KnownColor var in allColors) //KnownColor是一种枚举类型,包括了系统的所有颜色
{
myComboBox.Items.Add(var.ToString()); //加载该选项框的子项
}
}
private void myComboBox_DrawItem(object sender, DrawItemEventArgs e)
{
//判断是否需要重绘
if (e.Index >= 0)
{
string colorName = myComboBox.Items[e.Index].ToString(); //子项的颜色名
SolidBrush brush = new SolidBrush(Color.FromName(colorName)); //画笔
Font font = new Font("宋体", 9); //字体样式
Rectangle rect = e.Bounds; //获得需要重绘的区域
rect.Inflate(-2, -2); Rectangle rectColor = new Rectangle(rect.Location,new Size(20,rect.Height));
e.Graphics.FillRectangle(brush, rectColor); // 填充颜色
e.Graphics.DrawRectangle(Pens.Black, rectColor); // 绘制边框 //绘制文字
e.Graphics.DrawString(colorName, font, brushs, (rect.X+22), rect.Y);
//绘制选中效果
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
SolidBrush brushItem = new SolidBrush(SystemColors.MenuHighlight); //画笔
Rectangle rectItem = e.Bounds;
e.Graphics.FillRectangle(brushItem, rectItem);
}
else
{
SolidBrush brushItem = new SolidBrush(SystemColors.Window); //画笔
Rectangle rectItem = e.Bounds;
e.Graphics.FillRectangle(brushItem, rectItem);
comboBox加载颜色下拉列表框
原创
©著作权归作者所有:来自51CTO博客作者mb630ec035bcfe8的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:C# winform 窗体间传值
下一篇:获得上级调用的函数名
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
easyUI之ComboBox(下拉列表框)
ComboBox(下拉列表框) 城市: [ { "id":1, "name":"北京" }, ...
html javascript css jquery json -
下拉列表框select
三、下拉列表框 (一)
form表单元素 下拉框 HTML 提示信息 -
下拉列表JComboBox,列表框JList
1、下拉列表JComboBox 2、列表框JList
列表框 下拉列表 可编辑 遍历数组 字符串数组 -
jquery重置下拉列表框
前言 Coding 应当是一生的事业,而不仅仅是 30 岁的青春?文章的名字只是我的噱头,我们应该有一颗谦逊的心,所以希望大家怀着空杯心态好好学,一起进步?。每篇文章都希望你能收获到东西,这篇是围绕 Node.js 的核心架构与基础进行分析,希望你看完,能够有这些收获:Node.js 架构中各个层的含义及关系Node.js 如何与底层操作系统交互呢,比如读取一个文件的时候,都发生了些啥Node.j
jquery重置下拉列表框 js中select下拉框重置 js异步等待完成后再进行下一步操作 js读取txt js轮询导致服务器瘫痪 -
python file指针划到第三行
当我们读取文件内容时,并不能重复的读取,比如一个blogCblog.txt文件里有blogCblog内容,用两个read()方法读取blogCblog.txt的内容,会发现,第一个返回文件内容,第二个返回‘’。并不能重复读取,如果我想重复读取呢?怎么解决。 其实这跟文件指针有关,当我们对文件操作时,文件内部会有一个文件指针来定位当前位置,如图: 当op
python file指针划到第三行 python file.seek 文件指针 txt文件 os模块