This documentation is archived and is not being maintained.

Control::OnControlAdded Method

Raises the ControlAdded event.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

virtual void OnControlAdded(
	ControlEventArgs^ e


Type: System.Windows.Forms::ControlEventArgs

A ControlEventArgs that contains the event data.

Called when a child control is added to the control.

Raising an event invokes the event handler through a delegate. For more information, see Raising an Event.

The OnControlAdded method also allows derived classes to handle the event without attaching a delegate. This is the preferred technique for handling the event in a derived class.

Notes to Inheritors:

When overriding OnControlAdded in a derived class, be sure to call the base class's OnControlAdded method so that registered delegates receive the event.

The following code example uses ControlAdded to add a control to a form and displays the name of the added control in a MessageBox.

   // This example demonstrates the use of the ControlAdded and 
   // ControlRemoved events. This example assumes that two Button controls 
   // are added to the form and connected to the addControl_Click and 
   // removeControl_Click event-handler methods. 
   void Form1_Load( Object^ /*sender*/, System::EventArgs^ /*e*/ )
      // Connect the ControlRemoved and ControlAdded event handlers 
      // to the event-handler methods. 
      // ControlRemoved and ControlAdded are not available at design time. 
      this->ControlRemoved += gcnew System::Windows::Forms::ControlEventHandler( this, &Form1::Control_Removed );
      this->ControlAdded += gcnew System::Windows::Forms::ControlEventHandler( this, &Form1::Control_Added );

   void Control_Added( Object^ /*sender*/, System::Windows::Forms::ControlEventArgs^ e )
      MessageBox::Show( String::Format( "The control named {0} has been added to the form.", e->Control->Name ) );

   void Control_Removed( Object^ /*sender*/, System::Windows::Forms::ControlEventArgs^ e )
      MessageBox::Show( String::Format( "The control named {0} has been removed from the form.", e->Control->Name ) );

   // Click event handler for a Button control. Adds a TextBox to the form. 
   void addControl_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
      // Create a new TextBox control and add it to the form.
      TextBox^ textBox1 = gcnew TextBox;
      textBox1->Size = System::Drawing::Size( 100, 10 );
      textBox1->Location = Point(10,10);

      // Name the control in order to remove it later. The name must be specified 
      // if a control is added at run time.
      textBox1->Name = "textBox1";

      // Add the control to the form's control collection. 
      this->Controls->Add( textBox1 );

   // Click event handler for a Button control. 
   // Removes the previously added TextBox from the form. 
   void removeControl_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
      // Loop through all controls in the form's control collection.
      IEnumerator^ myEnum = this->Controls->GetEnumerator();
      while ( myEnum->MoveNext() )
         Control^ tempCtrl = safe_cast<Control^>(myEnum->Current);

         // Determine whether the control is textBox1, 
         // and if it is, remove it. 
         if ( tempCtrl->Name->Equals( "textBox1" ) )
            this->Controls->Remove( tempCtrl );

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0