На пустом winform код может быть добавлен, чтобы показать линии, которые пересекаются (перекрестие) по указателю мыши. Проблема в том, что линии не отображаются (или частично скрыты) элементами управления на форме (т. Е. Listview, splitcontainer, кнопками).
Как бы я изменил приведенный ниже код, чтобы он отображался поверх всех элементов управления, представленных в форме?
int lastX = 0;
int lastY = 0;
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
Region r = new Region();
r.Union(new Rectangle(0, lastY, this.Width, 1));
r.Union(new Rectangle(lastX, 0, 1, this.Height));
this.Invalidate(r);
this.Update();
Graphics g = Graphics.FromHwnd(this.Handle);
g.DrawLine(Pens.Chocolate, 0, e.Y, this.Width, e.Y);
g.DrawLine(Pens.Chocolate, e.X, 0, e.X, this.Height);
lastX = e.X;
lastY = e.Y;
}
private void Form1_MouseLeave(object sender, EventArgs e)
{
this.Invalidate();
}