2010-12-02 2 views
1

Я прочитал о Control.ParentChanged Событие на MSDN http://msdn.microsoft.com/en-us/library/system.windows.forms.control.parentchanged(VS.71).aspxКогда происходит событие Control.ParentChanged?

Но я не понимаю, пример кода: нет ParentChanged вообще появляться в исходном коде?

private void currencyTextBox_TextChanged(object sender, EventArgs e) 
{ 
    try 
    { 
     // Convert the text to a Double and determine if it is a negative number. 
     if(double.Parse(currencyTextBox.Text) < 0) 
     { 
     // If the number is negative, display it in Red. 
     currencyTextBox.ForeColor = Color.Red; 
     } 
     else 
     { 
     // If the number is not negative, display it in Black. 
     currencyTextBox.ForeColor = Color.Black; 
     } 
    } 
    catch 
    { 
     // If there is an error, display the text using the system colors. 
     currencyTextBox.ForeColor = SystemColors.ControlText; 
    } 
} 

Поэтому я не понимаю, что такое событие Control.ParentChanged.

ответ

0

Там будет еще один кусок кода в другом месте, который регистрирует это как обработчик события:

currencyTextBox.ParentChanged += new EventHandler(currencyTextBox_TextChanged); 

Однако, я согласен - имя метода является недостоверным.

Этот обработчик событий срабатывает при изменении родительского элемента управления этого элемента управления на другой родительский элемент управления.

Возможно, вы захотите ознакомиться с raising and consuming events.

4

Хе-хе, они просто не могли придумать хороший пример. И проиграли, показывая общий обработчик событий FooChanged. Да, бесполезно.

Очень необычно реализовать обработчик событий ParentChanged. Внутри Winforms большое значение имеет такие свойства, как BackColor, ForeColor, Font - свойства «ambient». Если они не переопределены по умолчанию, они получат значение родителя. Это, конечно, означает, что действительно важно заметить, что родительский изменился. Код winforms уже позаботится об этом, вам очень редко приходится беспокоиться об этом. Если вы не создадите свое собственное эмбиентное свойство, конечно.

Смежные вопросы