3

次のように不透明度を50%に設定したフォームがあります。

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

私の問題は、フォーム上のすべてが50%の不透明度であるということです

フォームに2つのボタンがあり、不透明度なしでボタンが必要です。

私はそれthis.Opacityがすべてのコントロールと何らかの理由でグラフィックスも含んでいたことを知っています

私の質問は、コントロールの不透明度を除外する方法ですか?

画像の例: 例2

ありがとう!

4

2 に答える 2

5

Controlプロパティがなく、それOpacityに加えて、ほとんどのコントロールは透明色をサポートしていないため、実用的な解決策は次のようになります。

  1. Form呼び出されたものを作成し、MainForm除外するすべてのコントロールを配置します。

    1.1との両方のプロパティを同じ色に設定BackColorTransparencyKeyますMainForm。例:Color.Red

  2. 名前の付いた別のフォームを作成TransparentFormし、透明にする必要があるすべてのコントロールを配置します。ShowInTaskbarプロパティをに設定しますFalse

  3. MainForm Loadイベントで表示し、それTransparentFormを送り返します。

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

    ここに画像の説明を入力してください

両方の形式のコントロールの位置は、組み合わせたときに適切なユーザーインターフェイスを表示するようにする必要があります。

于 2012-10-30T09:36:16.173 に答える
-1

C#プロジェクトを作成し、という名前の3つのフォームを追加します

  1. 主要
  2. 背景

そして、「MAIN」フォームロードイベントに次のコードを追加します。

private void MAIN_Load(object sender, EventArgs e)
{
     Child frm1 = new  Child();
     BACKGOUND frm2 = new BACKGOUND();
     frm2 .WindowState = System.Windows.Forms.FormWindowState.Maximized;      

     frm2.Opacity = 0.5;
     frm2.Show();

     frm1.ShowDialog();
     frm2.Close();
}
于 2015-11-01T15:52:46.890 に答える