Предлагаю в конструкторе формы подписать OnHover'ы всех дочерних контролов на функцию, записывающую текущий контрол в некую переменную:
C# Код:
public partial class Form1 : Form
{
private Control curctrl;
public Form1()
{
InitializeComponent();
ListenControls();
}
private void ListenControls()
{
// лямбда-функция, записывающая в curctrl текущий контрол
Action<object, EventArgs> hoverfunc =
(s,e) => curctrl = (Control)s;
// подписываем событие формы OnHover на hoverfunc
this.MouseHover += new System.EventHandler(hoverfunc);
// подписываем событие OnHover всех дочерних контролов формы на hoverfunc
foreach (Control ctrl in this.Controls)
ctrl.MouseHover += new System.EventHandler(hoverfunc);
}
}
Таким образом, в переменной curctrl и будет хранится нужный вам контрол.