こんにちは。yufinです。

今日は、Form上のlabel.textの変更の仕方です。

labelコントロールは、Formを用いるとき、とても使い勝手の良いコントロールなので、ついついたくさん貼り付けてしまうことがよくあります。

その際、いつもはそれぞれのtextをいちいちGUIのプロパティから変更していましたが、プログラムからやってみました。

f:id:yufin:20150817230659p:plain

上の状況の中で、それぞれのlabelを末尾の数字のみに変更します。

コードです。

private void button1_Click(object sender, EventArgs e)
{
          foreach (var item in this.Controls.OfType<Label>())
          {
                    item.Text = item.Name.Substring(5);
          }
}

f:id:yufin:20150817231339p:plain

見事できました。

コードについてですが、

相変わらず、まずはOfType<Label>です。対象を限定するのにとても便利です。

続いて、それぞれに対して、末尾の数字を切り取るSubstringメソッドを使用しています。

引数に「5」を使用していますが、とりあえず数字のみにできました。

foreachのなかでint.Parseなんかを使えば、数字を使っていろいろできそうです。