У меня есть панель, которая содержит дочерние панели, а внутри дочерних панелей у меня есть некоторые элементы управления, такие как PictureBox и label.
Как мне изменить цвет спины только одной дочерней панели, на которую указывает указатель мыши с помощью foreach
, и как я могу изменить цвет выбранной дочерней панели и как я могу создать дочерние панели внутри панели, которые содержат PictureBox
и этикетка?
Проблемы будут возникать, если между краем Родительского (Панельного) и Дочернего элементов управления (или маленьким) не будет пробела, чтобы указатель мыши был на правой стороне дочерней панели для работы. Как я могу это исправить?
это мой код для события mouseleave:
private void left_panel_MouseLeave(object sender, EventArgs e)
{
foreach (Panel p in left_panel.Controls.OfType<Panel>())
{
p.BackColor = Color.Transparent;
}
}
Мышь, введите событие:
private void left_panel_MouseEnter(object sender, EventArgs e)
{
foreach (Panel p in left_panel.Controls.OfType<Panel>())
{
if (this.ClientRectangle.Contains(p.PointToClient(Control.MousePosition)))
{
p.BackColor = ColorTranslator.FromHtml("#ff0000");
}
else
p.BackColor = Color.Transparent;
}
}
Вот что у меня есть:
Я хочу что-то вроде этого: