J'ai fondamentalement créé 2 contrôles enfants et je veux définir leur largeur pour être égale à la largeur du contrôle composite parent. Le problème est lorsque je fais cela en utilisant la propriété parent.Size, cela ne fonctionne pas. Cela ne fonctionne qu'une fois lorsque vous ajoutez le contrôle. Est-ce que je suis censé remplacer un événement et non une propriété? Je pensais que le changement de propriété serait signalé avec un redimensionnement, non?Comment modifier la taille des contrôles enfants dans un contrôle composite dans Winforms?
EDIT:
Voici le code, la propriété ne fonctionne pas, mais l'événement OnResize travaillé.
Q2: Ne devrait pas OnResize EventArgs e me donner la nouvelle taille?
public partial class CollapsableCtrl : UserControl
{
public CollapsableCtrl ()
{
this.ChildCtrl = new CustomCtrl ();
this.Size = new Size (181, 82);
this.Controls.Add (this.ChildCtrl);
}
CustomCtrl ChildCtrl { get; set; }
public new Size Size
{
get { return base.Size; }
set
{
this.ChildCtrl.Size = value;
Invalidate ();
}
}
protected override void OnResize (EventArgs e)
{
base.OnResize (e);
this.ChildCtrl.Size = this.Size;
}
}
Il n'est pas clair ce que vous faites maintenant, et comment cela ne fonctionne pas. S'il vous plaît montrer du code. –
Désolé, vous avez raison. Ajouté du code. –