使表单的背景透明

时间:2011-07-10 01:07:15

标签: c# .net winforms background

如何在表单上透明背景?是否有可能在C#?

提前致谢!

5 个答案:

答案 0 :(得分:32)

您可以将表单的BackColor设置为不常见的颜色(例如Color.Magenta),然后将表单的TransparencyKey属性设置为相同的颜色。然后,将FormBorderStyle设置为None

当然,这只是快速简便的解决方案。控件的边缘很难看,你必须不断改变你添加的新控件的背景颜色(如果它们是按钮或类似的东西)和其他一系列问题。

这取决于你想要实现的目标。它是什么?如果你想制作一个小部件,那就有更好的方法。如果您需要圆角或自定义背景,有更好的方法。因此,如果TransparencyKey不是您的想法,请提供更多信息。

答案 1 :(得分:14)

将以下内容放在表单的构造函数中:

public Form1()
{
    this.TransparencyKey = Color.Turquoise;
    this.BackColor = Color.Turquoise;
}

注意:此方法会阻止您点击表单。

答案 2 :(得分:4)

<强>更新

How to: Give Your Control a Transparent Background

<强>已过时How to: Create Transparent Windows Forms

  

注意:由于透明表单仅在Windows 2000或Windows 2000中受支持   稍后,Windows Forms将会   在旧版本上运行时完全不透明   操作系统,例如Windows 98,   无论为此设置的值如何   不透明属性。

答案 3 :(得分:1)

在winform中获取透明背景的简单解决方案是覆盖OnPaintBackground方法,如下所示:

protected override void OnPaintBackground(PaintEventArgs e)
{
//empty implementation
}

(请注意,base.OnpaintBackground(e)已从函数中删除)

答案 4 :(得分:-1)

我正在使用此代码

this.TransparencyKey = (BackColor);

只需在construcror中的 InitializeComponent();

下添加此行

来源:

http://mishelshaji.co.in/2017/creating-a-transparent-window-in-windows-form-application/