Cette documentation est archivée et n’est pas conservée.

ToolStripControlHost, classe

Mise à jour : novembre 2007

Héberge des contrôles personnalisés ou des contrôles Windows Forms.

Espace de noms :  System.Windows.Forms
Assembly :  System.Windows.Forms (dans System.Windows.Forms.dll)

public class ToolStripControlHost : ToolStripItem
public class ToolStripControlHost extends ToolStripItem
public class ToolStripControlHost extends ToolStripItem

ToolStripControlHost est la classe de base abstraite pour ToolStripComboBox, ToolStripTextBox et ToolStripProgressBar. ToolStripControlHost peut héberger d'autres contrôles, y compris des contrôles personnalisés, de deux manières :

  • Construisez ToolStripControlHost avec une classe qui dérive de Control. Pour accéder pleinement au contrôle hébergé et aux propriétés, vous devez effectuer un cast de la propriété Control en une classe réelle qu'elle représente.

  • Étendez ToolStripControlHost, et dans le constructeur par défaut de la classe héritée, appelez le constructeur de classe de base en passant une classe qui dérive de Control. Cette option vous permet d'encapsuler des méthodes et propriétés de contrôle communes pour en faciliter l'accès dans ToolStrip.

Utilisez la classe ToolStripControlHost pour héberger vos contrôles personnalisés ou tout autre contrôle Windows Forms.

Pour personnaliser un ToolStripItem, dérivez de ToolStripControlHost et créez une implémentation personnalisée. Vous pouvez substituer des méthodes telles que OnSubscribeControlEvents pour gérer des événements déclenchés par les contrôles hébergés, et vous pouvez ajouter des fonctionnalités personnalisées dans des propriétés pour améliorer le contrôle hébergé.

L'exemple de code suivant montre comment construire un ToolStripControlHost avec un contrôle MonthCalendar, à l'aide de OnSubscribeControlEvents pour gérer des événements et exposer quelques-uns de ses membres au ToolStripControlHost.

	//Declare a class that inherits from ToolStripControlHost.
	public class ToolStripMonthCalendar : ToolStripControlHost
	{
		// Call the base constructor passing in a MonthCalendar instance.
		public ToolStripMonthCalendar() : base (new MonthCalendar()) { }

		public MonthCalendar MonthCalendarControl
		{
			get
			{
				return Control as MonthCalendar;
			}
		}

		// Expose the MonthCalendar.FirstDayOfWeek as a property.
		public Day FirstDayOfWeek
		{
			get
			{
				return MonthCalendarControl.FirstDayOfWeek;
			}
			set { value = MonthCalendarControl.FirstDayOfWeek; }
		}

		// Expose the AddBoldedDate method.
		public void AddBoldedDate(DateTime dateToBold)
		{
			MonthCalendarControl.AddBoldedDate(dateToBold);
		}

		// Subscribe and unsubscribe the control events you wish to expose.
		protected override void OnSubscribeControlEvents(Control c)
		{
			// Call the base so the base events are connected.
			base.OnSubscribeControlEvents(c);

			// Cast the control to a MonthCalendar control.
			MonthCalendar monthCalendarControl = (MonthCalendar) c;

			// Add the event.
			monthCalendarControl.DateChanged +=
				new DateRangeEventHandler(OnDateChanged);
		}

		protected override void OnUnsubscribeControlEvents(Control c)
		{
			// Call the base method so the basic events are unsubscribed.
			base.OnUnsubscribeControlEvents(c);

			// Cast the control to a MonthCalendar control.
			MonthCalendar monthCalendarControl = (MonthCalendar) c;

			// Remove the event.
			monthCalendarControl.DateChanged -=
				new DateRangeEventHandler(OnDateChanged);
		}

		// Declare the DateChanged event.
		public event DateRangeEventHandler DateChanged;

		// Raise the DateChanged event.
		private void OnDateChanged(object sender, DateRangeEventArgs e)
		{
			if (DateChanged != null)
			{
				DateChanged(this, e);
			}
		}
	}


Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0
Afficher: