0

以下のコードは、ボタンをクリックしたときの各ボタンのインデックスを配列で表示しますが、これはすべてフォームの読み込みで行われます。しかし、フォームの読み込みではなく、クリックイベントで同じことを実行したいのですが、これを実行するにはどうすればよいでしょうか。

画像:ここに画像の説明を入力してください

コード:

namespace _2DArray
{
    public partial class Form1 : Form
    {
        private Button[,] b;
        public Form1()
        {
            InitializeComponent();
            b = new Button[2, 2];
            b = new Button[,] { {button1,button2 }, 
                                {button3, button4}};
        }
        public int x = 0;
        public int y = 0;
        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (Button bt in b)
            {
                bt.Click += new System.EventHandler(this.ClickedButton);
            }

            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < 2; j++)
                {
                    b[i, j].Click += new System.EventHandler(this.ClickedButton);
                    b[i, j].Name = "X: " + i + " " + "Y: " + j;

                }
            }

        }
        private void ClickedButton(object sender, EventArgs e)
        {
            Button s = (Button)sender;
            MessageBox.Show("you have clicked button: " + s.Name);


        }
    }
}
4

1 に答える 1

0

次のように答えました。

 private void ClickedButton(object sender, EventArgs e)
        {
            Button s = (Button)sender;
            int x = int.Parse(s.Name.Split()[1]);
            int y = int.Parse(s.Name.Split()[3]);

            MessageBox.Show("you have clicked button: " + x +" "+ y);
        }
于 2013-01-05T14:44:21.727 に答える