"该控件不支持透明的背景色"是怎么回事?
private void firstform_Load(object sender, System.EventArgs e)
{
Button rd1=new Button();
Button rd2=new Button();
Button rd3=new Button();
rd1.Location =new System.Drawing.Point(0,0);
rd2.Location =new System.Drawing.Point(0,30);
rd3.Location =new System.Drawing.Point(0,60);
rd1.Text ="红";
rd2.Text ="白";
rd3.Text ="绿";
this.Controls.AddRange(new Control[] {rd1,rd2,rd3});
rd1.Click += new System.EventHandler(genericClick);
rd2.Click += new System.EventHandler(genericClick);
rd3.Click += new System.EventHandler(genericClick);
}
private void genericClick(object sender, System.EventArgs e)
{
Button rdb;
rdb=(Button)sender;
this.BackColor= Color.FromName(rdb.Text);
}
运行时选中一个颜色就会报错:
未处理的“System.ArgumentException”类型的异常出现在 system.windows.forms.dll 中。
其他信息: 该控件不支持透明的背景色。
是不是因为VISTA窗体本身的透明效果影响的呢?
相关推荐
C#WinForm开发:将控件背景色设置为透明
以pictureBox控件上label控件为例,设置label控件的背景色透明,可以看到pictureBox控件的背景色。
winform自定义控件(gdi+)(1)———设置透明背景色
本文详细讲解了如何在winform中设置控件的背景色为透明色
c# 透明背景和透明控件实现
实现C# 透明控件的概念 解决多个窗体置顶问题 背景半透明 解决控件半透明问题
C# WinForm控件背景色透明
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 在C# WinForm应用程序的设计过程中,为控件设定透明化的背景色是一项普遍存在的要求,此举能够提升界面布局的灵活性,并增强用户界面的视觉吸引力。本指南将深入阐述达成此功能的方法,并以一个具体案例——在pictureBox组件上配置label组件的背景色为透明——作为实例进行解析。为了完成这项任务,我们必须掌握WinForm中的控件渲染机制。Windows Forms组件在默认状态下并不支持透明背景,这是因为它们依赖于GDI+图形接口,而该接口并不直接提供透明度的功能。尽管如此,我们可以借助特定的技术手段来模拟透明效果,主要包含以下几个环节:1. **开发定制化控件绘图**: 若要获得透明背景,我们须构建一个个性化的Label类,并重写其`OnPaint`方法,从而能够自主掌控它的绘图行为。在`OnPaint`方法内部,我们可以运用`Graphics`对象的`DrawString`方法来呈现文本,而非依赖系统自动绘制。通过这种方式,我们可以有效防止背景的绘制。2. **应用半透明色调**: 通过将控件的背景色设定为一种半透明(Alpha通道值非255)的色调,可以达成视觉上的透明感。然而,这种透明仅限于颜色层面,控件本身依旧是不透明的。为了实现完全的透明,我们需要进行更进一步的调整。3. **应用透明基准色**: 在定制的Label类中,我们可以将`BackColor`设置为`Color.Transparent`,接着启用控件的`UseVisualStyleBackColor`属性,这一操作将使控件采用其父窗体的色调作为背景。与此同时,我们还应设定控件的`Transpare...
vb.net2005窗体透明控件不透明
vb.net2005窗体透明控件不透明示例


