質問

パネルに表示される半透明のフォームを作成しようとしています。パネルにフォームを表示できますが、不透明度プロパティは機能せず、フォームは透明ではありません。

private void button1_Click(object sender, EventArgs e)
{
      Form fr = new Form();
      fr.FormBorderStyle = FormBorderStyle.None;
      fr.BackColor = Color.Black;
      fr.TopLevel = false;
      fr.Opacity = 0.5;
      this.panel1.Controls.Add(fr);
      fr.Show();
}

それをどのように扱うことができますか? 答えてくれてありがとう!

役に立ちましたか?

解決

Winformsは、トップレベルのフォームに対して部分的な透明性のみをサポートしています。部分的に透明なUI要素を持つアプリケーションを作成する場合は、WPFを使用するか、すべての描画を自分で処理する必要があります。悪いニュースの担い手になってすみません。

他のヒント

フォームは、デフォルトの不透明度= 1であるメインフォームの子であるpanel1の子コントロールとして追加されます。

作業中の不透明度を確認するには、これを試してください:

private void button1_Click(object sender, EventArgs e)
{
    Form fr = new Form();
    fr.FormBorderStyle = FormBorderStyle.None;
    fr.BackColor = Color.Blue;
    fr.TopLevel = false;
    //fr.Opacity = 0.5;
    this.Opacity = 0.5; // add this
    this.panel1.Controls.Add(fr);
    fr.Show();
}

パネルを半透明に見せたいと思うので、別の方法を使用してフォーム自体を操作する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top