ホームページ > バックエンド開発 > C++ > C#でPictureBoxの上に透明なラベルを表示する方法?

C#でPictureBoxの上に透明なラベルを表示する方法?

Mary-Kate Olsen
リリース: 2025-01-25 16:16:10
オリジナル
647 人が閲覧しました

How to Display a Transparent Label Over a PictureBox in C#?

C# フォームで PictureBox の上に透明なラベルを表示します

C# フォームで、PictureBox に透明なラベルを表示しようとすると、期待される透明効果ではなく、灰色の背景が表示されることがあります。これは、PictureBox がコンテナ コントロールではないためです。

解決策 1: コードの実装

この問題を解決するには、フォーム コンストラクターを変更し、ラベルの親を PictureBox に変更して、その位置を再計算します。

<code class="language-csharp">public Form1() {
    InitializeComponent();
    var pos = label1.Parent.PointToScreen(label1.Location);
    pos = pictureBox1.PointToClient(pos);
    label1.Parent = pictureBox1;
    label1.Location = pos;
    label1.BackColor = Color.Transparent;
}</code>
ログイン後にコピー

解決策 2: 設計時の機能強化

あるいは、ParentControlDesigner を継承するカスタム クラスを作成して、デザイン時の問題を解決します。

<code class="language-csharp">using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design;    // 添加对System.Design的引用

[Designer(typeof(ParentControlDesigner))]
class PictureContainer : PictureBox {}</code>
ログイン後にコピー

説明

上記の方法でPictureBoxをコンテナコントロールとして設定すると、ラベルがPictureBoxの子コントロールとなり、その透明度がPictureBoxの上に正しく表示されます。

以上がC#でPictureBoxの上に透明なラベルを表示する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート