【解決方法】C#でテキストのラベルに2色を使用する方法


Text を含むラベルが 1 つあります。 プロジェクト …..このテキストでは、ある色でプロ、別の色でジェクトが必要です

解決策 1

ラベルには 1 つの色しか含めることができません。
簡単な回避策として、2 つのラベル (フォントの色が異なる) を使用してこれを行うことができます。

より複雑な解決策は、独自のユーザー コントロールを構築することです。

解決策 4

一度「グラデーション」ラベルを作成する必要がありました…これはコードです(Winformsで動作します)

public partial class GradientLabel : Label {

public LabelEx() {
    InitializeComponent();
}

protected override void OnPaint(PaintEventArgs e) {
    Font font = new Font("Tahoma", 48f, FontStyle.Bold);
    LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, Width, Height + 5), Color.Gold, Color.Black, LinearGradientMode.Vertical);
    e.Graphics.DrawString(Text, font, brush, 0, 0);
}

}

これは正確には「2 色」ではありませんが、解決策につながる可能性があります。

解決策 8

回避策。 テキストの一部を含む下部の「ボタン」を作成し、その上にさまざまな色の文字を含むボタンを重ねていきます。 透明 背景、下部の「ボタン」をオーバーレイします。 「ボタン」を使用しているのは、すべてダミーのボタン状のオブジェクトであるためです。 最上位の項目のみが実際の「ボタン」であり、実際には onclick イベントを持つことになります。

ちなみに、これは、特定のタイプのフィッシング詐欺で使用されるという点で十分実用的です。実際の Web サイトのデータを、入力を受け入れ、詐欺師に送り返し、エラーを報告する透明なコントロールでオーバーレイします (再入力用の実際のページ)、または目に見えないレイヤーが消えるにつれて実際の画面にテキストを入力することもできます。

解決策 9

RichTextBox を使用することをお勧めします。これは標準コンポーネントであり、readonly を true に設定し、HideCaret を使用することでラベルとして使用できます (ここを参照してください: https://stackoverflow.com/questions/582312/how-to-hide-the-caret-in-a-richtextbox[^] 例えば)

解決策 2

text プロパティを次のような HTML テキストに設定してみてください

lbl.Text="<span style="color:Red;">Pro</span><span><span style="color:Green;">ject</span>";
</span>

ASPX フォームのバックエンドから。

コメント

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