Winform ComboBox如何独立绘制下拉选项的字体颜色
众所周知,cbo1.ForeColor会同时改变cbo1.Text和下拉选项字体颜色。
独立绘制下拉选项字体颜色,ForeColor 只对 cbo1.Text 颜色有效的办法,示例:
private void cb7_DrawItem(object sender, DrawItemEventArgs e) { DrawCboItems(sender, e); } private void cb7_SelectedIndexChanged(object sender, EventArgs e) { SetCboTextColor(sender); } private void SetCboTextColor(object sender) { ComboBox cbx = sender as ComboBox; if (cbx.Text == "+") cbx.ForeColor = Color.Red; else cbx.ForeColor = Color.Black; } private void DrawCboItems(object sender, DrawItemEventArgs e) { ComboBox cbo = sender as ComboBox; //初始化字体和背景色 Pen fColor = new Pen(Color.Black); Pen bColor = new Pen(Color.White); switch (e.Index) { //下拉选项的索引 case 1: { fColor = new Pen(Color.Red); break; } } e.Graphics.FillRectangle(bColor.Brush, e.Bounds); e.Graphics.DrawString((string)cbo.Items[e.Index], this.Font, fColor.Brush, e.Bounds); }
以上就是Winform ComboBox如何独立绘制下拉选项的字体颜色的详细内容,更多关于Winform ComboBox绘制字体颜色的资料请关注我们其它相关文章!
相关推荐
-
.Net WInform开发笔记(三)谈谈自制控件(自定义控件)
末日这天写篇博客吧,既然没来,那就纪念一下. 这次谈谈自制控件,也就是自定义控件,先上图,再说 1.扩展OpenFileDialog,在OpenFileDialog中添加各种文件(.txt,.jpg,.excel等等)的预览功能 2.重写ListBox,增加折叠.鼠标背影.分类等功能 -----------------------------分割线--------------------------------------------------------------一.扩展OpenFileD
-
c#中多线程访问winform控件的若干问题小结
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来解决这个问题,下面我将详细的介绍. 首先来看传统方法: 复制代码 代码如下: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender,
-
C#中WinForm程序退出方法技巧总结
本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退
-
C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色
在利用C#开发Winform应用程序的时候,我们有可能使用RichTextBox来实现实时显示应用程序日志的功能,日志又分为:一般消息,警告提示和错误等类别.为了更好地区分不同类型的日志,我们需要使用不同的颜色来输出对应的日志,比如:一般消息为绿色,警告提示的用橙色,错误的用红色字体. 在原生Winform的RichTextBox中,是没有这种设置选项的.如需实现以上描述的功能,我们可以使用.NET的静态扩展方法来处理.实现扩展方法的类和方法本身都必须是静态的,如果你对扩展方法还不是太了解,建议
-
C#(WinForm) ComboBox和ListBox添加项及设置默认选择项
Web控件DropDownList和WinForm控件ComboBox机制不一样. ComboBox没有对应的ListItem需要自己写一个: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WinListItem { /// <summary> /// 选择项类,用于ComboBox或者ListBox添加项 /// </summary>
-
WinForm中comboBox控件数据绑定实现方法
本文实例讲述了WinForm中comboBox控件数据绑定实现方法.分享给大家供大家参考,具体如下: 下面介绍三种对comboBox绑定的方式,分别是泛型中IList和Dictionary,还有数据集DataTable 一.IList 现在我们直接创建一个List集合,然后绑定 IList<string> list = new List<string>(); list.Add("111111"); list.Add("222222"); l
-
c# winform取消右上角关闭按钮的实现方法
一种方法是可以在窗体的属性面板将窗体的 ControlBox属性设置为false,或者在窗体的构造函数中这样写: 复制代码 代码如下: public Form1() { InitializeComponent(); this.ControlBox = false; // 设置不出现关闭按钮 } 不过这样做的话,会连同最小化和最大化按钮都给弄掉了,所以,如果你想只想让关闭按钮不起作用,然后保留最小化.最大化的话,就重写窗体的CreateParams方法: 复制代码 代码如下: //禁用窗体的关
-
c# winform多线程的小例子
在文本框中输入一个数字,点击开始累加按钮,程序计算从1开始累计到该数字的结果.因为该累加过程比较耗时,如果直接在UI线程中进行,那么当前窗口将出现假死.为了有更好的用户体验,程序启动一个新的线程来单独执行该计算,然后每隔200毫秒读取一次累加结果,并把结果显示到文本框下方的label控件中.同时,程序支持取消操作,点击取消累计按钮,程序将取消累加操作,并把当前累加值显示到label中.为了方便后面的描述,我把UI线程称作主线程,把执行累加计算的线程称作工作者线程.该过程有两个关键点: 1:如何在
-
WinForm窗体间传值的方法
本文实例讲述了WinForm窗体间传值的方法.分享给大家供大家参考.具体实现方法如下: 窗体间传递数据,无论是父窗体操作子窗体,还是子窗体操作符窗体,有以下几种方式: 1.公共静态变量: 2.使用共有属性: 3.使用委托与事件: 4.通过构造函数把主窗体传递到从窗体中: 一.通过静态变量 特点:传值是双向的,实现简单 实现代码如下: 在一个app类中定义一个静态成员value 复制代码 代码如下: public class app { public static string value
-
WinForm实现为ComboBox绑定数据源并提供下拉提示功能
本文实例展示了WinForm实现为ComboBox绑定数据源并提供下拉提示功能,这是一个非常有实用价值的功能,具体实现方法如下: 主要功能代码如下: /// <summary> /// 为ComboBox绑定数据源并提供下拉提示 /// </summary> /// <typeparam name="T">泛型</typeparam> /// <param name="combox">ComboBox<
-
winform中的ListBox和ComboBox绑定数据用法实例
本文实例讲述了winform中的ListBox和ComboBox绑定数据用法.分享给大家供大家参考.具体实现方法如下: 本例实现将集合数据绑定到ListBox和ComboBox控件,界面上显示某个属性的内容,代码如下: 复制代码 代码如下: //... //自定义了Person类(有Name,Age,Heigth等属性) List<Person> persons=new List<Person>(); persons.Add(new Person("WuMiao"
随机推荐
- 一个小型js框架myJSFrame附API使用帮助
- 彻底解决ewebeditor网站后台不能上传图片的方法
- javascript new一个对象的实质
- centos7系统下nginx安装并配置开机自启动操作
- 一行iOS代码实现图片无限轮播器
- 使用DataTable.Select 方法时,特殊字符的转义方法分享
- yii2.0实现pathinfo的形式访问的配置方法
- Discuz!X中SESSION机制实例详解
- css首字放大实例代码
- dedecms调用discuz论坛信息按照ID分类调用附详细说明
- jquery UI Datepicker时间控件冲突问题解决
- 高质量PHP代码的50个实用技巧必备(上)
- SQL 实现某时间段的统计业务
- C#窗体传值实例汇总
- jQuery+ajax实现修改密码验证功能实例详解
- 对超级脚本病毒的构思
- CentOS6.6安装CloudStack4.8
- Android中RecyclerView 滑动时图片加载的优化
- Android五种隐藏状态栏和标题栏的方法
- C++ auto类型说明符