C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.54757 の関連記事表示

<< 0 >>
■54757  クリックされたボタンNameを取得し、似たNameのラベルを
□投稿者/ きしり -(2010/11/01(Mon) 15:17:30)

    分類:[C#] 

    2010/11/01(Mon) 15:46:00 編集(投稿者)

    C#2010にてプログラミングしています。
    100個ほどのボタンと、それ同数のラベルが貼り付けてあります。

    このような状況で例えば、
    あるボタン「btnBanana」をクリックした際に、
    対応するラベル「lblBanana」の文字列を変化させたいです。

    ここで質問です。

    ひとつひとつのボタンのクリックイベントに個別のコードを書くのは大変手間で、
    また、後の変更時にも多くの時間を要してしまいます。
    同じコードで済ますことはできないでしょうか?


    具体的に思いついたイメージとしては、

    1.TextBox cTextBox = (sender as TextBox);
      cTextBox.Name にてクリックされたボタン名を取得
      (例)btnBanana

    2.文字列「btnXXX」の「btn」を「lbl」に置換してラベル名生成
      (例)btnBanana→lblBanana

    3.生成した文字列を用いて、その.Textの内容を変更
      (例)lblBanana.Text = btnBanana.Text;

    といったものです。

    とにかくできるだけシンプルなコードにしたいと考えています。
    よろしくお願いいたします。
親記事 /過去ログ92より / 関連記事表示
削除チェック/

■54760  Re[1]: クリックされたボタンNameを取得し、似たNameのラベルを
□投稿者/ m2 -(2010/11/01(Mon) 16:06:26)
    No54757 (きしり さん) に返信
    > 2010/11/01(Mon) 15:46:00 編集(投稿者)
    
    --------------------------------------------------------------------------------
    // ボタン共通
    private void button_Click(object sender, EventArgs e)
    {
        // 押下ボタン名を取得し検索対象ラベル名に変換(ここでの例:button1 -> Label1 てな感じ)
        string searchLabelName = ((Button)sender).Name.Replace("button", "label");
    
        // 対象ラベル名を検索
        foreach (Control c in this.Controls)
        {
            if (c.Name == searchLabelName)
            {
                // ラベルに押下ボタンのテキストを表示
                ((Label)c).Text = ((Button)sender).Text;
                break;
            }
        }
    }
    --------------------------------------------------------------------------------
    
    シンプルかどうかは不明
    
記事No.54757 のレス /過去ログ92より / 関連記事表示
削除チェック/

■54762  Re[2]: クリックされたボタンNameを取得し、似たNameのラベルを
□投稿者/ きしり -(2010/11/01(Mon) 17:17:28)
    m2 さん

    コントロール内を検索、なんていう方法があるんですね。
    大変勉強になりました。
    ありがとうございました。
記事No.54757 のレス / END /過去ログ92より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -