S.L.C.

☆くれたら必ず返します

【プログラミング】C# マウスクリックイベントにまったく同じ機能を付ける方法

複数ボタンに同じマウスクリックイベントさせてとか調べてみると、んーちょっと面倒だな、、、

参考URL

複数ボタンで同クリックイベント処理後、処理分岐の方法 - 四方山備忘録

自分流ですが、

配列作って、回してポン!でいいと思うのです

まったく同じ処理だったら

 Color RGB1 =Color.FromArgb( 52, 152, 219 );

private void button_MouseEnter(object sender, EventArgs e)

{

  //ボタン名を配列に格納
  string[] BtName =

   { "button1", "button2", "button3", "button4", "button5", "button6" };

     Button bt=(Button)sender;
    //配列の長さまでループ
    for(int i=0;i<BtName.Length;i++)

    {

    //配列の名前とMouseEnterのオブジェクト名が一致なら処理する
      if(bt.Name==BtName[i])

       {

        bt.ForeColor = RGB1;

       }

     }

}

 これは6個のボタンにマウスが入った時、ForeColor(文字色)をRGB(52,152,219)に設定する内容です

BtName配列にボタン名を格納してます

これやるとswitch文で簡単に処理分岐できるので、if文でコピペしてなくて大丈夫

switchで分岐するなら、下記をIf文の{}へ

switch(i){

    case 0:

         bt.ForeColor = RGB1;
   break;

    case 1:

         bt.ForeColor = Color.Black;
   break;

    default:

         bt.ForeColor=Color.White;

BtName[0]はRGB指定色へ

BtName[1]は黒へ

他は白へ

という内容

自分的にはスマートかな~って思ってますw

ポイントは初挑戦だったんですが、Object senderをButtonへキャストするってところかな?

Object型だったんで、できるかなと思ってやったらできました!!基礎中の基礎ですね、素人ですんません

久しぶりのC#記事でした