using System.ComponentModel;
using System.Windows.Forms;
namespace Developpez.Dotnet.Windows.Forms
{
///
/// Fournit une propriété supplémentaire pour activer ou désactiver le comportement DragMove pour les contrôles.
///
[ProvideProperty("EnableDragMove", typeof(Control))]
public partial class DragMoveProvider : Component, IExtenderProvider
{
///
/// Initialise une nouvelle instance de DragMoveProvider.
///
public DragMoveProvider()
{
InitializeComponent();
}
///
/// Initialise une nouvelle instance de DragMoveProvider avec le container spécifié.
///
/// Un IContainer qui représente le container du DragMoveProvider.
public DragMoveProvider(IContainer container)
{
container.Add(this);
InitializeComponent();
}
#region IExtenderProvider Members
///
/// Renvoie true si le DragMoveProvider peut fournir une propriété d'extension à l'objet cible spécifié.
///
/// L'objet cible auquel ajouter une propriété d'extension.
/// true si le DragMoveProvider peut fournir une ou plusieurs propriété d'extensions ; sinon, false.
public bool CanExtend(object extendee)
{
return (extendee is Control);
}
#endregion
///
/// Renvoie une valeur indiquant si le comportement DragMove est actif sur le contrôle spécifié.
///
/// Le contrôle pour lequel obtenir le statut du DragMove
/// true si le comportement DragMove est actif pour ce contrôle ; sinon, false.
[DefaultValue(false)]
public bool GetEnableDragMove(Control control)
{
return control.IsDragMoveEnabled();
}
///
/// Active ou désactive le comportement DragMove pour le contrôle spécifié.
///
/// Le contrôle pour lequel activer ou désactiver le comportement DragMove.
/// Une valeur indiquand si le comportement DragMove doit être activé (true) ou désactivé (false) pour le contrôle.
public void SetEnableDragMove(Control control, bool value)
{
control.EnableDragMove(value);
}
}
}