События мыши отключенного элемента управления передаются в Parent
.
Вы можете поймать их там и проверить, находится ли курсор на кнопке.
Пример:
if (button1.Bounds.Contains(e.Location)) button1.Enabled = true;
Если у вас есть несколько кнопок, вам нужно проверить их все..:
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
foreach (Control ctl in panel1.Controls)
{
if (ctl is Button && ctl.Bounds.Contains(e.Location))
ctl.Enabled = true;
}
}
Если предполагается включить только правую кнопку мыши, добавьте для нее тест, например, так:
if (e.Button.HasFlag(MouseButtons.Right) &&
ctl is Button && ctl.Bounds.Contains(e.Location))