Я только что попробовал через VS2005 и простые WinForms. Я вставил в событие EnableChanged
private void numericUpDown1_EnabledChanged(object sender, EventArgs e)
{
NumericUpDown nud = (NumericUpDown)sender;
nud.BackColor = nud.Enabled ? Color.Yellow : Color.Red;
}
и добавил еще одну кнопку в форму, чтобы просто поменять ее включенное состояние
private void button2_Click(object sender, EventArgs e)
{
this.numericUpDown1.Enabled = ! this.numericUpDown1.Enabled;
}
Если вы создадите свой собственный класс NumericUpDown, производный от базового класса NumericUpDown, и поместите его в него, он будет действовать для всех экземпляров ВАШЕГО класса, используемого в вашем приложении, без явного изменения этого цвета в каждой форме.