在系统上的透明背景::窗口::窗体::形式
问题描述:
我有一个System :: Windows :: Forms ::窗体,我试图将背景设置为透明。 此表单包含其他组件并具有背景图像。在系统上的透明背景::窗口::窗体::形式
我尝试了很多我在互联网上看到的解决方案,但没有任何工作。
- 将窗体透明度设置为0 - >使整个窗体变得透明。
- 使用颜色::透明 - >不似乎工作
- 使用TransparencyKey - >似乎并不工作太...
- 覆盖OnPaintBackground或OnPaint事件 - >事件并不似乎是叫...
图示码:
public ref class Form : public System::Windows::Forms::Form
{
public: Form(void) {
InitializeComponent();
}
public: void InitializeComponent(void)
{
SetStyle(ControlStyles::SupportsTransparentBackColor, true);
this->TransparencyKey = System::Drawing::Color::Fuchsia;
this->BackColor = System::Drawing::Color::Fuchsia;
// or ...
this->BackColor = System::Drawing::Color::Transparent;
}
protected: virtual void OnPaint(PaintEventArgs e)override {}
protected: virtual void OnPaintBackground(PaintEventArgs e)override {}
}
感谢您的帮助。 Cyrbil
编辑:
问题解决了,第一次了超越,它是:
protected: virtual void OnPaint(PaintEventArgs^ e)override {}
protected: virtual void OnPaintBackground(PaintEventArgs^ e)override {}
我只是忘了^。 然后,我不知道为什么,但我开始了一个新的项目,并尝试其他方法,它工作正常。所以从现在起我用这个新项目和一切都很好。我想这只是Visual C++谁有一些随机问题。
答
问题解决了,第一次了超越,它是:
protected: virtual void OnPaint(PaintEventArgs^ e)override {}
protected: virtual void OnPaintBackground(PaintEventArgs^ e)override {}
我只是忘了^。然后,我不知道为什么,但我开始了一个新项目,尝试其他方法,它工作正常。所以从现在起我用这个新项目和一切都很好。我想这只是Visual C++谁有一些随机问题。
不*编辑InitializeComponent(),它是由设计者自动生成的。在设计器重新生成代码时,您在那里写的任何内容都会随机消失。在调用InitializeComponent()之后,将代码移至构造函数**。 – 2012-08-02 17:46:04