System :: Windows :: Forms :: Formがあり、背景を透明に設定しようとしています。このフォームには他のコンポーネントが含まれており、背景画像があります。
私はインターネットで見た多くの解決策を試しましたが、何も機能しません。
- フォームの不透明度を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 {}
}
ご協力いただきありがとうございます。シルビル
編集:
問題は解決しました。最初にオーバーライドについては、次のとおりです。
protected: virtual void OnPaint(PaintEventArgs^ e)override {}
protected: virtual void OnPaintBackground(PaintEventArgs^ e)override {}
^を忘れてしまいました。その後、理由はわかりませんが、新しいプロジェクトを開始して他の方法を試してみましたが、問題なく動作しました。だから今から私はこの新しいプロジェクトを使用し、すべてがうまくいきます。ランダムな問題が発生したのはVisualC++だけだと思います。