好的,我的请求有点复杂需要解释一下。当我点击一个按钮时,它会执行以下操作:
peopleNum = 0;
topPosition = 10;
public void submitStudent(string name)
{
peopleNum++;
topPosition += 25;
ComboBox people_comboBox = new ComboBox();
people_comboBox.Name = "people_comboBox" + peopleNum;
//ComboBox people_label_finder = this.Controls.Find("people_comboBox" + peopleNum, true).FirstOrDefault as ComboBox;
people_comboBox.Left = 150;
people_comboBox.Top = topPosition;
string[] people_comboBox_itemList = new string[3];
people_comboBox_itemList[0] = "Present";
people_comboBox_itemList[1] = "Late";
people_comboBox_itemList[2] = "Absent";
people_comboBox.DataSource = people_comboBox_itemList;
people_comboBox.MouseEnter += new EventHandler(people_comboBox_enter);
people_comboBox.MouseLeave += new EventHandler(people_comboBox_leave);
this.Controls.Add(people_comboBox);
}
接下来是"people_comboBox_enter"和"people_comboBox_leave"函数的代码:
private void people_comboBox_enter(object sender, EventArgs e)
{
ComboBox people_comboBox = this.Controls["people_comboBox" + peopleNum] as ComboBox;
if (people_comboBox != null)
{
people_comboBox.BackColor = Color.Red;
}
}
private void people_comboBox_leave(object sender, EventArgs e)
{
ComboBox people_comboBox = this.Controls["people_comboBox" + peopleNum] as ComboBox;
if (people_comboBox != null)
{
people_comboBox.BackColor = Color.White;
}
}
我希望当鼠标悬停在组合框上时,它会变成红色,当鼠标离开时它会恢复白色。但实际结果是,当有多个组合框时,只有最后一个发生了变化。我该怎么做才能达到预期效果呢?非常感谢。
peopleNum
存储在成员变量中,然后惊讶地发现它实际上是最后一个... - Alexei Levenkov