gpt4 book ai didi

c# - 更改禁用的组合框BackColor的功能是Bug还是功能?

转载 作者:太空宇宙 更新时间:2023-11-03 17:45:07 25 4
gpt4 key购买 nike

我发现以下解决方案:
如果我请设计师:

this.comboBox1.BackColor = System.Drawing.Color.White;  //or any other color
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; //it has to be that style


我可以更改 comboBox1的颜色-它并不总是灰色。

它应该是DropDownList,并且BackColor应该放置在设计器中。

它是错误还是功能?

最佳答案

制作自定义组合框,然后在WndProc中将BackColor设置为禁用控件。

public class ComboBoxCustom : ComboBox {
[DllImport("gdi32.dll")]
internal static extern IntPtr CreateSolidBrush(int color);

[DllImport("gdi32.dll")]
internal static extern int SetBkColor(IntPtr hdc, int color);

protected override void WndProc(ref Message m){
base.WndProc(ref m);
IntPtr brush;
switch (m.Msg){

case (int)312:
SetBkColor(m.WParam, ColorTranslator.ToWin32(this.BackColor));
brush = CreateSolidBrush(ColorTranslator.ToWin32(this.BackColor));
m.Result = brush;
break;
default:
break;
}
}
}

关于c# - 更改禁用的组合框BackColor的功能是Bug还是功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6113298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com