Я пытаюсь создать около 25 кнопок класса ButtonControls
, которые наследуются от обычного Button
класса с вложенными циклами for
для создания квадрата.Я добавил специальные свойства, названные coordsX
и coordsY
, которые я использую, чтобы знать, где они должны быть размещены в форме, и для какого-то другого использования, которое слишком сложно объяснить здесь.Когда я создаю кнопку, она помещается туда, где она должна быть, и записывает ее «координаты» в виде текста, и она показывает правильные значения, но когда я нажимаю на нее, должно появиться окно сообщения и дать мне координаты этой кнопки, но это всегдапоказывает координаты последней созданной кнопки.
private void CreateBoard()
{
for (int x=0;x<BoardWidth;x++)
{
for (int y=0;y<BoardHeight;y++)
{
ButtonControls bc = new ButtonControls(x,y,PieceSize);
//bc.Name = x+"_"+y;
//bc.BackgroundImage = PieceBmp;
//bc.Size = new Size(PieceSize,PieceSize);
bc.Click += PieceButton_Click;
Point docks = new Point(20, 20);
docks.Offset(ButtonControls.coordsX, ButtonControls.coordsY);
bc.Location = docks;
Controls.Add(bc);
}
}
}
Используемый конструктор выглядит так:
public ButtonControls (int X,int Y, int ButtonSize)
{
coordsX = X*ButtonSize;
coordsY = Y*ButtonSize;
Name = X+"."+Y;
BackColor = Color.White;
Size = new Size(ButtonSize,ButtonSize);
Font = new Font("Arial",6);
Text = coordsX + "." + coordsY;
}
public static int coordsX { get; set; }
public static int coordsY { get; set; }
И событие щелчка вот так:
private void PieceButton_Click (object sender,EventArgs e)
{
MessageBox.Show(ButtonControls.coordsX+"/"+ButtonControls.coordsY);
}
Как я могу сделать так, чтобы отображались координаты кнопки, на которую я нажал?