Actualización: noviembre 2007
Proporciona la funcionalidad para un control que va a actuar como primario de otros controles.
Espacio de nombres:
System.Windows.Forms
Ensamblado:
System.Windows.Forms (en System.Windows.Forms.dll)

Sintaxis
Visual Basic (Declaración)
Public Interface IContainerControl
Dim instance As IContainerControl
public interface IContainerControl
public interface class IContainerControl
public interface IContainerControl
public interface IContainerControl

Comentarios
Notas para los implementadores: Implemente esta interfaz en las clases en las que desee relacionar una colección de controles. Los miembros de esta interfaz le permiten activar un control secundario o determinar qué control está activo actualmente. Cuando se implementa en una clase, ActivateControl toma Control como parámetro y activa el control especificado. La propiedad ActiveControl activa o recupera el control que está activo.
En la mayoría de los escenarios, no es necesario implementar esta interfaz directamente. Por ejemplo, si crea un proyecto de Biblioteca de controles Windows, Visual Studio genera una clase inicial automáticamente. Esa clase se hereda de la clase UserControl, y UserControl implementa IContainerControl automáticamente.

Ejemplos
El siguiente ejemplo se hereda de la clase ScrollableControl e implementa la interfaz IContainerControl. Se agrega la implementación a la propiedad ActiveControl y al método ActivateControl.
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Public Class MyContainerControl
Inherits ScrollableControl
Implements IContainerControl
Private myActiveControl As Control
Public Sub New()
' Make the container control Blue so it can be distinguished on the form.
Me.BackColor = Color.Blue
' Make the container scrollable.
Me.AutoScroll = True
End Sub
' Add implementation to the IContainerControl.ActiveControl property.
Public Property ActiveControl() As Control Implements IContainerControl.ActiveControl
Get
Return Me.myActiveControl
End Get
Set
' Make sure the control is a member of the ControlCollection.
If Me.Controls.Contains(value) Then
Me.myActiveControl = value
End If
End Set
End Property
' Add implementation to the IContainerControl.ActivateControl(Control) method.
public Function ActivateControl(active As Control) As Boolean Implements IContainerControl.ActivateControl
If Me.Controls.Contains(active) Then
' Select the control and scroll the control into view if needed.
active.Select()
Me.ScrollControlIntoView(active)
Me.myActiveControl = active
Return True
End If
Return False
End Function
End Class
using System;
using System.Windows.Forms;
using System.Drawing;
public class MyContainer : ScrollableControl, IContainerControl
{
private Control activeControl;
public MyContainer()
{
// Make the container control Blue so it can be distinguished on the form.
this.BackColor = Color.Blue;
// Make the container scrollable.
this.AutoScroll = true;
}
// Add implementation to the IContainerControl.ActiveControl property.
public Control ActiveControl
{
get
{
return activeControl;
}
set
{
// Make sure the control is a member of the ControlCollection.
if(this.Controls.Contains(value))
{
activeControl = value;
}
}
}
// Add implementations to the IContainerControl.ActivateControl(Control) method.
public bool ActivateControl(Control active)
{
if(this.Controls.Contains(active))
{
// Select the control and scroll the control into view if needed.
active.Select();
this.ScrollControlIntoView(active);
this.activeControl = active;
return true;
}
return false;
}
}
using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;
public ref class MyContainer: public ScrollableControl, public IContainerControl
{
private:
Control^ activeControl;
public:
MyContainer()
{
// Make the container control Blue so it can be distinguished on the form.
this->BackColor = Color::Blue;
// Make the container scrollable.
this->AutoScroll = true;
}
property Control^ ActiveControl
{
// Add implementation to the IContainerControl.ActiveControl property.
virtual Control^ get()
{
return activeControl;
}
virtual void set( Control^ value )
{
// Make sure the control is a member of the ControlCollection.
if ( this->Controls->Contains( value ) )
{
activeControl = value;
}
}
}
// Add implementations to the IContainerControl.ActivateControl(Control) method.
virtual bool ActivateControl( Control^ active )
{
if ( this->Controls->Contains( active ) )
{
// Select the control and scroll the control into view if needed.
active->Select( );
this->ScrollControlIntoView( active );
this->activeControl = active;
return true;
}
return false;
}
};
import System.*;
import System.Windows.Forms.*;
import System.Drawing.*;
public class MyContainer extends ScrollableControl implements IContainerControl
{
private Control activeControl;
public MyContainer()
{
// Make the container control Blue so it can be
// distinguished on the form.
this.set_BackColor(Color.get_Blue());
// Make the container scrollable.
this.set_AutoScroll(true);
} //MyContainer
// Add implementation to the IContainerControl.ActiveControl property.
/** @property
*/
public Control get_ActiveControl()
{
return activeControl;
} //get_ActiveControl
/** @property
*/
public void set_ActiveControl(Control value)
{
// Make sure the control is a member of the ControlCollection.
if (this.get_Controls().Contains(value)) {
activeControl = value;
}
} //set_ActiveControl
// Add implementations to the IContainerControl.
// ActivateControl(Control) method.
public boolean ActivateControl(Control active)
{
if (this.get_Controls().Contains(active)) {
// Select the control and scroll the control into view if needed.
active.Select();
this.ScrollControlIntoView(active);
this.activeControl = active;
return true;
}
return false;
} //ActivateControl
} //MyContainer

Plataformas
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión
.NET Framework
Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

Vea también