[C#] labelテキストをプログラムから変更する方法

C#でラベルのテキストをプログラムから変更するには、通常、Windows FormsやWPFアプリケーションでラベルコントロールのTextプロパティを設定します。

例えば、Windows Formsではlabel1.Text = "新しいテキスト";のように記述します。

WPFの場合は、label1.Content = "新しいテキスト";を使用します。

これにより、ラベルに表示されるテキストが動的に変更され、ユーザーインターフェースに反映されます。

これらの操作は、イベントハンドラ内やメソッド内で行うことが一般的です。

この記事でわかること
  • ラベルのテキストをプログラムから変更する方法
  • ボタンやテキストボックスとの連携
  • タイマーを使った動的なテキスト変更
  • コンボボックス選択による表示内容の変更
  • ラベルのフォントや色のカスタマイズ方法

目次から探す

ラベルテキストの変更方法

ラベルコントロールの追加

C# Windowsフォームアプリケーションでラベルを追加するには、Visual Studioのデザイナーを使用します。

以下の手順でラベルをフォームに追加できます。

  1. ツールボックスから Label コントロールを選択します。
  2. フォーム上にドラッグ&ドロップします。
  3. プロパティウィンドウで、ラベルの名前や初期テキストを設定します。

Textプロパティの概要

ラベルの表示テキストは、Textプロパティを使用して設定します。

このプロパティは、ラベルに表示される文字列を指定するために使用されます。

初期値は空文字列で、プログラムから変更することができます。

プログラムからのテキスト変更手順

プログラムからラベルのテキストを変更するには、以下の手順を実行します。

  1. ラベルコントロールのインスタンスを作成します。
  2. Textプロパティに新しい文字列を代入します。

以下は、ラベルのテキストを変更するサンプルコードです。

partial class MyForm : Form
{
    private Label myLabel;
    public MyForm()
    {
        InitializeComponent();
        // ラベルのインスタンスを作成
        myLabel = new Label();
        myLabel.Location = new Point(10, 10);
        myLabel.Size = new Size(200, 30);
        myLabel.Text = "初期テキスト"; // 初期テキストを設定
        this.Controls.Add(myLabel);
    }
    private void ChangeLabelText()
    {
        // ラベルのテキストを変更
        myLabel.Text = "新しいテキスト"; 
    }
}

このコードでは、ChangeLabelTextメソッドを呼び出すことで、ラベルのテキストを「新しいテキスト」に変更します。

イベントハンドラを使ったテキスト変更

ラベルのテキストをユーザーのアクションに応じて変更するには、イベントハンドラを使用します。

例えば、ボタンをクリックしたときにラベルのテキストを変更することができます。

以下は、ボタンを追加し、そのクリックイベントでラベルのテキストを変更するサンプルコードです。

partial class MyForm : Form
{
    private Label myLabel;
    private Button myButton;
    public MyForm()
    {
        InitializeComponent();
        myLabel = new Label();
        myLabel.Location = new Point(10, 10);
        myLabel.Size = new Size(200, 30);
        myLabel.Text = "初期テキスト";
        this.Controls.Add(myLabel);
        myButton = new Button();
        myButton.Location = new Point(10, 50);
        myButton.Size = new Size(100, 30);
        myButton.Text = "変更";
        myButton.Click += new EventHandler(MyButton_Click); // イベントハンドラを追加
        this.Controls.Add(myButton);
    }
    private void MyButton_Click(object sender, EventArgs e)
    {
        // ボタンがクリックされたときにラベルのテキストを変更
        myLabel.Text = "ボタンがクリックされました"; 
    }
}

このコードでは、ボタンがクリックされると、ラベルのテキストが「ボタンがクリックされました」に変更されます。

実践例:ボタンを使ってラベルを変更

ボタンコントロールの追加

C# Windowsフォームアプリケーションでボタンを追加するには、Visual Studioのデザイナーを使用します。

以下の手順でボタンをフォームに追加できます。

  1. ツールボックスから Button コントロールを選択します。
  2. フォーム上にドラッグ&ドロップします。
  3. プロパティウィンドウで、ボタンの名前や初期テキストを設定します。

ボタンクリックイベントの設定

ボタンがクリックされたときに特定の処理を実行するためには、ボタンクリックイベントを設定する必要があります。

以下の手順でイベントを設定できます。

  1. ボタンを選択し、プロパティウィンドウの「イベント」タブを開きます。
  2. Clickイベントを見つけ、ダブルクリックします。

これにより、イベントハンドラが自動的に生成されます。

以下は、ボタンクリックイベントを設定するサンプルコードです。

partial class MyForm : Form
{
    private Label myLabel;
    private Button myButton;
    public MyForm()
    {
        InitializeComponent();
        myLabel = new Label();
        myLabel.Location = new Point(10, 10);
        myLabel.Size = new Size(200, 30);
        myLabel.Text = "初期テキスト";
        this.Controls.Add(myLabel);
        myButton = new Button();
        myButton.Location = new Point(10, 50);
        myButton.Size = new Size(100, 30);
        myButton.Text = "変更";
        myButton.Click += new EventHandler(MyButton_Click); // イベントハンドラを追加
        this.Controls.Add(myButton);
    }
    private void MyButton_Click(object sender, EventArgs e)
    {
        // ボタンクリック時の処理
    }
}

イベント内でのラベルテキスト変更

ボタンクリックイベント内でラベルのテキストを変更するには、イベントハンドラ内でTextプロパティに新しい文字列を代入します。

以下は、ボタンクリック時にラベルのテキストを変更するサンプルコードです。

private void MyButton_Click(object sender, EventArgs e)
{
    // ボタンがクリックされたときにラベルのテキストを変更
    myLabel.Text = "ボタンがクリックされました"; 
}

このコードを追加することで、ボタンがクリックされると、ラベルのテキストが「ボタンがクリックされました」に変更されます。

これにより、ユーザーのアクションに応じて動的にラベルの内容を変更することができます。

応用例

テキストボックスの入力をラベルに反映

ユーザーがテキストボックスに入力した内容をリアルタイムでラベルに反映させることができます。

これにより、ユーザーが入力した内容を即座に確認できるようになります。

以下は、テキストボックスの内容をラベルに反映するサンプルコードです。

partial class MyForm : Form
{
    private Label myLabel;
    private TextBox myTextBox;
    public MyForm()
    {
        InitializeComponent();
        myLabel = new Label();
        myLabel.Location = new Point(10, 10);
        myLabel.Size = new Size(200, 30);
        myLabel.Text = "ここにテキストが表示されます";
        this.Controls.Add(myLabel);
        myTextBox = new TextBox();
        myTextBox.Location = new Point(10, 50);
        myTextBox.Size = new Size(200, 30);
        myTextBox.TextChanged += new EventHandler(MyTextBox_TextChanged); // イベントハンドラを追加
        this.Controls.Add(myTextBox);
    }
    private void MyTextBox_TextChanged(object sender, EventArgs e)
    {
        // テキストボックスの内容をラベルに反映
        myLabel.Text = myTextBox.Text; 
    }
}

このコードでは、テキストボックスの内容が変更されるたびに、ラベルのテキストが更新されます。

タイマーを使った定期的なテキスト変更

タイマーを使用して、一定の間隔でラベルのテキストを変更することも可能です。

これにより、動的な情報表示が実現できます。

以下は、タイマーを使ってラベルのテキストを定期的に変更するサンプルコードです。

partial class MyForm : Form
{
    private Label myLabel;
    private Timer myTimer;
    private int counter = 0;
    public MyForm()
    {
        InitializeComponent();
        myLabel = new Label();
        myLabel.Location = new Point(10, 10);
        myLabel.Size = new Size(200, 30);
        myLabel.Text = "カウント: 0";
        this.Controls.Add(myLabel);
        myTimer = new Timer();
        myTimer.Interval = 1000; // 1秒ごとに実行
        myTimer.Tick += new EventHandler(MyTimer_Tick); // イベントハンドラを追加
        myTimer.Start(); // タイマーを開始
    }
    private void MyTimer_Tick(object sender, EventArgs e)
    {
        // カウンターを増加させてラベルに表示
        counter++;
        myLabel.Text = $"カウント: {counter}"; 
    }
}

このコードでは、1秒ごとにカウンターが増加し、その値がラベルに表示されます。

コンボボックス選択によるラベル変更

コンボボックスの選択肢を変更することで、ラベルのテキストを動的に変更することができます。

これにより、ユーザーが選択した内容に応じた情報を表示できます。

以下は、コンボボックスの選択によってラベルのテキストを変更するサンプルコードです。

partial class MyForm : Form
{
    private Label myLabel;
    private ComboBox myComboBox;
    public MyForm()
    {
        InitializeComponent();
        myLabel = new Label();
        myLabel.Location = new Point(10, 10);
        myLabel.Size = new Size(200, 30);
        myLabel.Text = "選択してください";
        this.Controls.Add(myLabel);
        myComboBox = new ComboBox();
        myComboBox.Location = new Point(10, 50);
        myComboBox.Size = new Size(200, 30);
        myComboBox.Items.Add("選択肢1");
        myComboBox.Items.Add("選択肢2");
        myComboBox.Items.Add("選択肢3");
        myComboBox.SelectedIndexChanged += new EventHandler(MyComboBox_SelectedIndexChanged); // イベントハンドラを追加
        this.Controls.Add(myComboBox);
    }
    private void MyComboBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        // コンボボックスの選択に応じてラベルのテキストを変更
        myLabel.Text = myComboBox.SelectedItem.ToString(); 
    }
}

このコードでは、コンボボックスの選択肢が変更されると、その選択肢がラベルに表示されます。

これにより、ユーザーの選択に基づいた情報を提供することができます。

よくある質問

ラベルテキストが変更されないのはなぜ?

ラベルのテキストが変更されない場合、以下の点を確認してください。

  • イベントハンドラが正しく設定されているか: ボタンやテキストボックスのイベントが正しく設定されているか確認します。
  • ラベルのインスタンスが正しいか: 変更しようとしているラベルが、実際にフォームに追加されているラベルであるか確認します。
  • UIスレッドでの更新: UI要素はUIスレッドでのみ更新する必要があります。

別のスレッドから更新しようとすると、変更が反映されないことがあります。

複数のラベルを一度に変更する方法は?

複数のラベルを一度に変更するには、以下の方法を使用します。

  1. ラベルのリストを作成: 複数のラベルをリストや配列に格納します。
  2. ループを使用: ループを使って、各ラベルのTextプロパティを変更します。
private void ChangeMultipleLabels()
{
    Label[] labels = { label1, label2, label3 }; // 複数のラベルを配列に格納
    foreach (var label in labels)
    {
        label.Text = "新しいテキスト"; // 各ラベルのテキストを変更
    }
}

ラベルのフォントや色も変更できる?

はい、ラベルのフォントや色も変更できます。

以下のプロパティを使用します。

  • Font: ラベルのフォントを変更するために使用します。
  • ForeColor: ラベルの文字色を変更するために使用します。
  • BackColor: ラベルの背景色を変更するために使用します。
myLabel.Font = new Font("Arial", 12, FontStyle.Bold); // フォントを変更
myLabel.ForeColor = Color.Red; // 文字色を赤に変更
myLabel.BackColor = Color.Yellow; // 背景色を黄色に変更

これにより、ラベルの見た目をカスタマイズすることができます。

まとめ

この記事では、C# Windowsフォームプログラミングにおけるラベルテキストの変更方法について詳しく解説しました。

具体的には、ラベルコントロールの追加から、ボタンやテキストボックス、タイマー、コンボボックスを使用したテキスト変更の実践例を紹介しました。

これらの知識を活用することで、ユーザーインターフェースをよりインタラクティブにすることが可能です。

ぜひ、実際のプロジェクトでこれらのテクニックを試してみて、より魅力的なアプリケーションを作成してみてください。

  • URLをコピーしました!
目次から探す