【解決方法】 2 つのコントロールを同じ場所に配置する方法は? C#


2つのコントロールを同じ場所に置き、前面のコントロールを不透明にする方法があります。

元:-
コントロール A (背面): ボタン 、不透明度 100%、位置 300;240
コントロール B (前面): パネルまたはその他、不透明度 60%、場所 300;240

私が試したこと:

私はこれを試しました:

Color.FromArgb(120, Color.Black);

ただし、背面にコントロールがない場合にのみ機能します。

解決策 1

これは、Windows フォームでは透明ではないためです。 コントロールの背景色を透明に設定すると、実際に行っていることは、コントロールにコンテナ (おそらくフォーム) の背景プロパティを引き継ぐように指示することです。 パネルの後ろに Button コントロールが表示されません。

不透明度によってコントロールが透明になるわけではありません。 描画しているものは部分的に透明になりますが、コントロールの描画面は透明になりません。 これを回避するには、独自のバージョンの Panel コントロールを作成して、Panel の描画方法を完全に制御する必要があります。

例については、を参照してください。 .NET 透明パネルの作成 | コードグル[^]

別の問題があります。 これから作成する Panel コントロールは Button を覆うため、マウス クリックはボタンではなくパネルに移動します。 パネルは、マウスではなく、視覚的に透過的です。

コメント

タイトルとURLをコピーしました