+-
如何从C#中的WinForm.Opacity中排除控件
我有一个将其不透明度设置为50%的表单,如下所示:

this.Opacity = 0.5D; <--this==Form

我的问题是表单上所有不透明度为50%的东西

我在表单上有两个按钮,我希望它们不透明.

我知道这.不透明度包括所有控件,并且由于某种原因图形也是如此

我的问题是,如何排除控件的不透明度?

示例图片:

谢谢!

最佳答案
由于Control不具有Opacity属性,而且大多数控件都不支持透明颜色,因此可行的解决方案可以是:

>创建一个名为MainForm的表单,然后放置将要排除的所有控件.

1.1将MainForm的BackColor和TransparencyKey属性设置为相同的颜色,例如Color.Red
>创建另一个名为TransparentForm的表单,并放置所有必须透明的控件.将ShowInTaskbar属性设置为False.
>在MainForm Load事件中,显示TransparentForm并将其发送回.

private void MainForm_Load(object sender, EventArgs e)
{
    TransparentForm form = new TransparentForm();
    form.Opacity = 0.5D;
    form.Show();
    form.SendToBack(); 
}

两种形式的控件的位置都必须这样,以便在组合时显示正确的用户界面.

点击查看更多相关文章

转载注明原文:如何从C#中的WinForm.Opacity中排除控件 - 乐贴网