共用方式為


Control.OnControlRemoved(ControlEventArgs) 方法

定義

引發 ControlRemoved 事件。

protected:
 virtual void OnControlRemoved(System::Windows::Forms::ControlEventArgs ^ e);
protected virtual void OnControlRemoved (System.Windows.Forms.ControlEventArgs e);
abstract member OnControlRemoved : System.Windows.Forms.ControlEventArgs -> unit
override this.OnControlRemoved : System.Windows.Forms.ControlEventArgs -> unit
Protected Overridable Sub OnControlRemoved (e As ControlEventArgs)

參數

e
ControlEventArgs

ControlEventArgs,其中包含事件資料。

範例

下列程式碼範例會使用 ControlRemoved 從表單中移除控制項,並在 中 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 );
         }
      }
   }
// 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 += new System.Windows.Forms.ControlEventHandler(this.Control_Removed);
    this.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.Control_Added);
}

private void Control_Added(object sender, System.Windows.Forms.ControlEventArgs e)
{
    MessageBox.Show("The control named " + e.Control.Name + " has been added to the form.");
}

private void Control_Removed(object sender, System.Windows.Forms.ControlEventArgs e)
{
    MessageBox.Show("The control named " + e.Control.Name + " has been removed from the form.");
}

// Click event handler for a Button control. Adds a TextBox to the form.
private void addControl_Click(object sender, System.EventArgs e)
{
    // Create a new TextBox control and add it to the form.
    TextBox textBox1 = new TextBox();
    textBox1.Size = new Size(100,10);
    textBox1.Location = new 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.
private void removeControl_Click(object sender, System.EventArgs e)
{
    // Loop through all controls in the form's control collection.
    foreach (Control tempCtrl in this.Controls)
    {
        // Determine whether the control is textBox1,
        // and if it is, remove it.
        if (tempCtrl.Name == "textBox1")
        {
            this.Controls.Remove(tempCtrl);
        }
    }
}
' 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 Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' Connect the ControlRemoved and ControlAdded event handlers to the event-handler methods.
    ' ControlRemoved and ControlAdded are not available at design time.
    AddHandler Me.ControlRemoved, AddressOf Me.Control_Removed
    AddHandler Me.ControlAdded, AddressOf Me.Control_Added
End Sub


Private Sub Control_Added(ByVal sender As Object, ByVal e As System.Windows.Forms.ControlEventArgs)
    MessageBox.Show(("The control named " + e.Control.Name + " has been added to the form."))
End Sub


Private Sub Control_Removed(ByVal sender As Object, ByVal e As System.Windows.Forms.ControlEventArgs)
    MessageBox.Show(("The control named " + e.Control.Name + " has been removed from the form."))
End Sub


' Click event handler for a Button control. Adds a TextBox to the form.
Private Sub addControl_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
    ' Create a new TextBox control and add it to the form.
    Dim textBox1 As New TextBox()
    textBox1.Size = New Size(100, 10)
    textBox1.Location = New 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.
    Me.Controls.Add(textBox1)
End Sub


' Click event handler for a Button control.
' Removes the previously added TextBox from the form.
Private Sub removeControl_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button2.Click
    ' Loop through all controls in the form's control collection.
    Dim tempCtrl As Control
    For Each tempCtrl In Me.Controls
        ' Determine whether the control is textBox1,
        ' and if it is, remove it.
        If tempCtrl.Name = "textBox1" Then
            Me.Controls.Remove(tempCtrl)
        End If
    Next tempCtrl
End Sub

備註

從 控制項中移除子控制項時呼叫。

引發事件會透過委派叫用此事件處理常式。 如需詳細資訊,請參閱 處理和引發事件

OnControlRemoved 方法也允許衍生類別處理事件,而不用附加委派。 這是在衍生類別中處理事件的慣用技巧。

給繼承者的注意事項

當在衍生類別中覆寫 OnControlRemoved(ControlEventArgs) 時,請確定呼叫基底類別的 OnControlRemoved(ControlEventArgs) 方法,使已註冊的委派能接收到事件。

適用於

另請參閱