Export (0) Print
Expand All
Expand Minimize

Control::OnControlAdded Method

Raises the ControlAdded event.

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

protected:
virtual void OnControlAdded(
	ControlEventArgs^ e
)

Parameters

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 Handling and Raising Events.

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. 
private:
   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 );
         }
      }
   }

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft