我创建了一个如下所示的Windows窗体: My Windows Form
我想要做的是通过将其编号传递给Form构造函数来为这些编号按钮中的一个着色。这是我尝试过的,但没有明显的变化。有什么建议吗?
public SeatSelection(string seatNumber)
{
InitializeComponent();
foreach(Control ctrl in this.tableLayoutPanel1.Controls)
{
if (ctrl.Text == seatNumber)
{
ctrl.BackColor = Color.Red;
}
}
}
if语句确实找到了,BackColor确实发生了变化,但表单不会更新: Watch
答案 0 :(得分:0)
对不起伙计,我的坏人。这段代码很好。我在其他地方犯了一个错误。我没有意识到在调用这个之后我立即调用了默认构造函数。在我的if语句中错过了else关键字,所以它是
int seatNumber = Convert.ToInt32(txtSeatNumber.Text);
if(seatNumber>=1 && seatNumber<=21)
seats = new SeatSelection(txtSeatNumber.Text);
seats = new SeatSelection();
seats.Show();
而不是
int seatNumber = Convert.ToInt32(txtSeatNumber.Text);
if(seatNumber>=1 && seatNumber<=21)
seats = new SeatSelection(txtSeatNumber.Text);
else
seats = new SeatSelection();
seats.Show();