Winform控件Enable=false显示优化

时间:2022-04-24 17:20:11

在B/S开发中(ASP.NET),往往可以css样式表来让页面控件更加美观,但是在C/S中(Winform)里面,我们则需要通过其他取巧的 方式来实现。例如:当你因为某个需求需要将控件设置为Readonly=True或是Enable=False的时候。这时候控件显示往往会变成暗灰色, 如图:

Winform控件Enable=false显示优化

这时候,我们如果希望窗体有较好的用户体验,那么我们可以将TextBox的背景色设置为白色,这样就可以有较好的显示效果。

this.textBox1.BackColor = Color.White;

但是并不是每一个控件都适合用这种方法,例如ListView这个控件就并不适用,我们需要用另一种方式,将该控件的背景图片设置为白色的图片。

System.Drawing.Bitmap destBmp = new Bitmap(250, 250);
// 将位图背景填充为白色
System.Drawing.Graphics graph = System.Drawing.Graphics.FromImage(destBmp);
graph.FillRectangle(new SolidBrush(System.Drawing.Color.White), 0, 0, destBmp.Width, destBmp.Height);
graph.Dispose();
//将ListView背景图片设为白色图片
this.listView1.BackgroundImage = destBmp;

通过这样的设置,就可以把灰色部分变成白色的背景,提高用户体验。如图:

Winform控件Enable=false显示优化