多くのボタンを持つテーブルを動的に作成しています。目標は、ボタンをクリックするたびに、その横にあるボタンの色が変わることです。ただし、ボタンをクリックするたびに、クリックしたボタンの色が変わります。その隣にあるものは、2 回目のクリック後にのみ色が変わります。
私はこれに非常に慣れておらず、英語があまり得意ではないので、説明をできるだけわかりやすくしていただければ、それが最善です.
コードは次のとおりです。
protected void Page_Load(object sender, EventArgs e)
{
Table tavla = new Table(); //New Table
tavla.GridLines = GridLines.Both; //Gridlines
tavla.BorderWidth = 4; //BorderWidth
tavla.ID = "tbl1"; //Table ID
Button btn = null; //New Button
for (int i = 1; i <= 8; i++)
{
TableRow myline = new TableRow();
for (int j = 1; j <= 8; j++)
{
TableCell ta = new TableCell();
ta.HorizontalAlign = HorizontalAlign.Center;
btn = new Button();
btn.Width = 40;
btn.Height = 30;
btn.ID = i.ToString() + j.ToString();
btn.Text = btn.ID.ToString();
if ((btn.ID == "54") || (btn.ID == "45"))
{
btn.BackColor = Color.Black;
btn.Text = btn.ID.ToString();
btn.ForeColor = Color.Aqua;
}
else if ((btn.ID == "44") || (btn.ID == "55"))
{
btn.BackColor = Color.Red;
btn.Text = btn.ID.ToString();
btn.ForeColor = Color.Aqua;
}
else
{
btn.BackColor = Color.Empty;
btn.ForeColor = Color.Black;
}
btn.Click += new EventHandler(Checking);
ta.Controls.Add(btn);
myline.Cells.Add(ta);
}
tavla.Rows.Add(myline);
}
Panel1.Controls.Add(tavla);
}
protected void Checking(object sender, EventArgs e)
{
Button btn1 = sender as Button; // New button.
btn1.ID = (int.Parse(btn1.ID) + 1).ToString(); // Button ID += 1
btn1.BackColor = Color.Red; // Button changes color
this.Label1.Text = btn1.ID.ToString(); //Label showing the ID of button clicked.
}