C#.Net ComboBox控件设置DropDownList之后背景颜色问题,以及发现的微软的一个BUG

先说背景颜色问题怎么处理。

C#.Net WinForm中如果设置ComboBox的DropDownStyle为DropDownList,控件背景色会变成灰色,并且这个时候ComboBox控件的BackColor背景色属性则不会起作用,用户体验不好,可能以为是不能点击的,在不引用第三方控件库,和不重绘控件的情况下,我们可以修改下ComboBox的FlatStyle属性使用户体验提升。

并且FlatStyle属性修改后可以设置BackColor属性

微软的小BUG是

先设置DropDownStyle属性,后设置FlatStyle属性

先设置FlatStyle属性,后设置DropDownStyle属性

产生的效果是不一样的,如图所示。

本人也是查询资料修改FlatStyle属性解决背景色问题,结果发现修改后控件好丑呀,外围一圈白,内部一片灰色,这个时候设置BackColor背景色属性只会改变外圈的颜色,好像多了个边框似的,完全没有观感,本来都想放弃这种方法,但是后面发现实际运行时的界面与预览时完全不一样。猜想是VS设计时的绘制顺序和实际运行时的绘制顺序不一致导致。有反馈途径的园友可以给微软反馈试试。

下图中上半部分为VisualStudio预览界面,下部分为实际运行效果

原文地址:https://www.cnblogs.com/leiyongbo/p/12193639.html

时间: 2024-10-13 19:16:52

C#.Net ComboBox控件设置DropDownList之后背景颜色问题,以及发现的微软的一个BUG的相关文章

一、背景 1.如何设置标签的背景颜色 (1)在CSS中有一个background-color:属性值;,就是专门用来设置标签的背景颜色。 (2)取值:具体单词、RGB、RGBA、十六进制 例子:

<style> .p1{ background-color: red; } .p2{ background-color: rgb(0,255,0); } .p3{ background-color: rgba(0,0,255,1); } .p4{ background-color: #00ffff; } </style> </head> <body> <p class="p1">我是试练</p> <p cla

winform中comboBox控件加默认选项的问题

winform程序设计中,label,TextBox,ComboBox等几个控件几乎是用得最多的,在设计中经常会遇到一些小问题,如:comboBox控件绑定了数据源之后,如何设置默认值? combobox绑定数据源之后是这样的北京             <----默认显示的就是这条上海深圳....想要让它显示成这样请选择城市     <--------要想默认显示这条北京上海深圳 .... 尝试做法: 1.修改了DropDownStyle属性也不起作用. 2.消去数据源直接用  combob

MFC之ComboBox控件

添加内容 ComboBox_AddString(hwndCtl,lpsz) hwndCtl为此组合框的句柄,lpsz为需要添加的字符串,组合框不能直接通过id添加内容,所以需要得到这个控件的句柄,还得使用GetDlgItem()函数. 举例: HWND hwndCombo1 = GetDlgItem(hwnd,IDC_C1); //建立一个组合框,ID可以设置为IDC_C1,然后通过GetDlgItem获取这个组合框的句柄 //如果无法正常显示,需要调整此组合框的最大显示范围,在向下箭头上出现上

SplendidCRM中给来自EditView中的listbox控件设置选中值或数据源

DropDownList list = this.findContol("aas") as DropDownList;list.DataSource = new DataTable() ------------------------------- Control ctl = this.FindControl("NAME");            if (ctl != null)            {                if (ctl is Dro

Combobox控件实现汉字按拼音首字母检索

Combobox控件在开发中作为下拉选项的不二之选,用的非常频繁,前几日开发过程中刚好有个需求有用到这个控件,而且客户要求增加下拉选择功能,这个简单,设置控件的自动完成属性后就解决了 this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;//设置自动完成的源  this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;//设置自动完成的的形式 发现场

C#用ComboBox控件实现省与市的联动效果的方法

本文实例讲述了C#用ComboBox控件实现省与市的联动效果的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using

将数据表中的数据添加到ComboBox控件中

实现效果: 知识运用: ComboBox控件的DataSource 属性 //获取或设置ComboBox的数据源 public Object DataResouce{get;set;} //属性值:任何实现了IList接口的对象 如DataSet 泛型集合或数组 DisplayMember属性 //获取或设置要为此列表控件显示的属性 public string DisplayMember{get;set;}  ValueMember属性 //用于列表控件中数据项的实际值 默认为string.Em

C#在窗口中ComboBox控件中加载数据库数据

首先,窗体一加载,绑定省份和城市数据 //窗口加载事件 private void register_Load(object sender, EventArgs e) { bindPro();//绑定省份数据函数 } /// <summary> /// 绑定省份数据函数 /// </summary> public void bindPro() { //获取数据库数据 List<ProvinceData> list = new ProvinceDA().Select();

C# dataGridView控件中加入comboBox控件及注意事项

DataGridViewComboBoxColumn pCombo; private void Teaching_Add_Load(object sender, EventArgs e) { MyDBase DB = new MyDBase(DBUser.sserver,DBUser.DBName, DBUser.suser, DBUser.spasswd); DataSet DS= DB.GetRecordset("select * from view_teach_tmp"); da