2010-12-02 18 views
1

Ich las über Control.ParentChanged Ereignis auf MSDN http://msdn.microsoft.com/en-us/library/system.windows.forms.control.parentchanged(VS.71).aspxWenn Control.ParentChanged-Ereignis auftritt?

Aber ich verstehe nicht, den Beispielcode: Es gibt kein Parentüberhaupt im Quellcode angezeigt?

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; 
    } 
} 

Also ich verstehe nicht, was Control.ParentChanged Event ist oder tut.

Antwort

0

Es wäre ein weiteres Stück Code an anderer Stelle sein, der dies als Event-Handler registriert:

currencyTextBox.ParentChanged += new EventHandler(currencyTextBox_TextChanged); 

aber ich stimme - die Methode Name irreführend ist.

Dieser Ereignishandler wird ausgelöst, wenn Sie das übergeordnete Steuerelement dieses Steuerelements in ein anderes übergeordnetes Steuerelement ändern.

Sie möchten vielleicht auf raising and consuming events nachlesen.

4

Hehe, sie konnten einfach kein gutes Beispiel finden. Und gestempelt, indem Sie stattdessen einen generischen FooChanged-Event-Handler zeigen. Ja, nutzlos.

Es ist ziemlich ungewöhnlich, einen Ereignishandler ParentChanged selbst zu implementieren. Es ist eine große Sache in den Winforms Interna, Eigenschaften wie BackColor, ForeColor, Font sind Ambient-Eigenschaften. Wenn sie nicht vom Standardwert überschrieben werden, erhalten sie den Wert des übergeordneten Elements. Was natürlich bedeutet, dass es wirklich wichtig ist zu beachten, dass die Eltern geändert. Der Winforms-Code kümmert sich bereits darum, Sie müssen sich sehr selten darum kümmern. Es sei denn, Sie erstellen natürlich Ihre eigene Ambient-Eigenschaft.

Verwandte Themen