Control.OnForeColorChanged(EventArgs) 方法

定义

引发 ForeColorChanged 事件。

protected:
 virtual void OnForeColorChanged(EventArgs ^ e);
protected virtual void OnForeColorChanged (EventArgs e);
abstract member OnForeColorChanged : EventArgs -> unit
override this.OnForeColorChanged : EventArgs -> unit
Protected Overridable Sub OnForeColorChanged (e As EventArgs)

参数

e
EventArgs

包含事件数据的 EventArgs

示例

下面的代码示例是属性值更改时 Text 执行的事件引发方法。 类 Control 具有多个名称模式 OnPropertyNameChanged 的方法,这些方法在 PropertyNameChanged 值更改时引发相应的 PropertyName 事件 (PropertyName 表示相应属性的名称) 。

下面的代码示例更改 ForeColor 显示货币数据的派生类的 TextBox 。 该示例将文本转换为十进制数,如果数字为负数,将 更改为 ForeColorColor.Red ;如果该数字为正数,则更改为 Color.Black 。 此示例要求具有派生自 TextBox 类的类。

protected:
   virtual void OnTextChanged( System::EventArgs^ e ) override
   {
      try
      {
         // Convert the text to a Double and determine
         // if it is a negative number.
         if ( Double::Parse( this->Text ) < 0 )
         {
            // If the number is negative, display it in Red.
            this->ForeColor = Color::Red;
         }
         else
         {
            // If the number is not negative, display it in Black.
            this->ForeColor = Color::Black;
         }
      }
      catch ( Exception^ ) 
      {
         // If there is an error, display the
         // text using the system colors.
         this->ForeColor = SystemColors::ControlText;
      }

      TextBox::OnTextChanged( e );
   }
protected override void OnTextChanged(System.EventArgs e)
{
   try
   {
      // Convert the text to a Double and determine
      // if it is a negative number.
      if(double.Parse(this.Text) < 0)
      {
         // If the number is negative, display it in Red.
         this.ForeColor = Color.Red;
      }
      else
      {
         // If the number is not negative, display it in Black.
         this.ForeColor = Color.Black;
      }
   }
   catch
   {
      // If there is an error, display the 
      // text using the system colors.
      this.ForeColor = SystemColors.ControlText;
   }
   
   base.OnTextChanged(e);
}
Protected Overrides Sub OnTextChanged(e As System.EventArgs)
   Try
      ' Convert the text to a Double and determine
      ' if it is a negative number.
      If Double.Parse(Me.Text) < 0 Then
         ' If the number is negative, display it in Red.
         Me.ForeColor = Color.Red
      Else
         ' If the number is not negative, display it in Black.
         Me.ForeColor = Color.Black
      End If
   Catch
      ' If there is an error, display the
      ' text using the system colors.
      Me.ForeColor = SystemColors.ControlText
   End Try

   MyBase.OnTextChanged(e)
End Sub

注解

引发事件时,将通过委托调用事件处理程序。 有关详细信息,请参阅 处理和引发事件

OnForeColorChanged 方法还允许派生类对事件进行处理而不必附加委托。 这是在派生类中处理事件的首选技术。

继承者说明

在派生类中重写 OnForeColorChanged(EventArgs) 时,一定要调用基类的 OnForeColorChanged(EventArgs) 方法,以便已注册的委托对事件进行接收。

适用于

另请参阅