次のように不透明度を50%に設定したフォームがあります。
this.Opacity = 0.5D; <--this==Form
私の問題は、フォーム上のすべてが50%の不透明度であるということです
フォームに2つのボタンがあり、不透明度なしでボタンが必要です。
私はそれthis.Opacity
がすべてのコントロールと何らかの理由でグラフィックスも含んでいたことを知っています
私の質問は、コントロールの不透明度を除外する方法ですか?
画像の例:
ありがとう!
Control
プロパティがなく、それOpacity
に加えて、ほとんどのコントロールは透明色をサポートしていないため、実用的な解決策は次のようになります。
Form
呼び出されたものを作成し、MainForm
除外するすべてのコントロールを配置します。
1.1との両方のプロパティを同じ色に設定BackColor
しTransparencyKey
ますMainForm
。例:Color.Red
名前の付いた別のフォームを作成TransparentForm
し、透明にする必要があるすべてのコントロールを配置します。ShowInTaskbar
プロパティをに設定しますFalse
。
MainForm
Load
イベントで表示し、それTransparentForm
を送り返します。
private void MainForm_Load(object sender, EventArgs e)
{
TransparentForm form = new TransparentForm();
form.Opacity = 0.5D;
form.Show();
form.SendToBack();
}
両方の形式のコントロールの位置は、組み合わせたときに適切なユーザーインターフェイスを表示するようにする必要があります。
C#プロジェクトを作成し、という名前の3つのフォームを追加します
そして、「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();
}