Control.OnControlAdded(ControlEventArgs) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывает событие ControlAdded.
protected:
virtual void OnControlAdded(System::Windows::Forms::ControlEventArgs ^ e);
protected virtual void OnControlAdded (System.Windows.Forms.ControlEventArgs e);
abstract member OnControlAdded : System.Windows.Forms.ControlEventArgs -> unit
override this.OnControlAdded : System.Windows.Forms.ControlEventArgs -> unit
Protected Overridable Sub OnControlAdded (e As ControlEventArgs)
Параметры
Объект ControlEventArgs, содержащий данные события.
Примеры
В следующем примере кода используется ControlAdded для добавления элемента управления в форму и отображается имя добавленного элемента управления в 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
Комментарии
Вызывается при добавлении дочернего элемента управления в элемент управления .
При возникновении события через делегат вызывается обработчик события. Дополнительные сведения см. в разделе Обработка и вызов событий.
Метод OnControlAdded также позволяет производным классам обрабатывать событие, не присоединяя делегат. Это предпочтительная методика обработки событий в производном классе.
Примечания для тех, кто наследует этот метод
При переопределении метода OnControlAdded(ControlEventArgs) в производном классе нужно убедиться, что вызывается метод OnControlAdded(ControlEventArgs) базового класса, чтобы зарегистрированные делегаты получили событие.