Если честно, я не думаю, что в моем коде должен быть большой беспорядок / проблема, но почему-то цвета не меняются, когда я нажимаю на ярлык!
То, чего я пытался достичь, было, если пользователь mouseClick male затем меняет цвет на зеленый, а другой ярлык aka (Female) снова становится красным, и наоборот!
for (int i = 0; i < 2; i++)
{
Label RB = new Label();
RB.Location = new Point(x,y);
RB.Width = 95;
RB.Text = LabelsText[4].Split('-')[i];
RB.BackColor = Color.PaleVioletRed;
RB.TextAlign = ContentAlignment.MiddleCenter;
RB.Font = new Font(family.Families[0], 11.0f, FontStyle.Bold);
RB.ForeColor = Color.AntiqueWhite;
RB.Name = txtBoxNames[4].Split('-')[i];
RB.MouseClick += (s, ev) =>
{
if (((Label)(s)).Name == "isMale")
{
((Label)(s)).BackColor = Color.GreenYellow;
((Label)(s)).ForeColor = Color.Black;
foreach (Control ct in this.Controls)
{
if (ct is Label)
{
if (((Label)(ct)).Name == "isFemale")
{
((Label)(s)).BackColor = Color.PaleVioletRed;
((Label)(s)).ForeColor = Color.AntiqueWhite;
}
}
}
this.Refresh();
this.Update();
}
else if(((Label)(s)).Name == "isFemale")
{
((Label)(s)).BackColor = Color.GreenYellow;
((Label)(s)).ForeColor = Color.Black;
foreach (Control ct in this.Controls)
{
if (ct is Label)
{
if (((Label)(ct)).Name == "isMale")
{
((Label)(s)).BackColor = Color.PaleVioletRed;
((Label)(s)).ForeColor = Color.AntiqueWhite;
}
}
}
}
};
this.Controls.Add(RB);
x += RB.Width + 10 ;
}