Özel bir kapsayıcıyı UserControl
olarak oluşturmaya çalışıyorum.Kapsayıcı UserControl - Eklenen Denetimleri İşleme ve Değiştirme
Hedefim: Tasarımcının içindeki denetimleri sürükleyip kullanıcı denetimlerimin kodunun içindeki gelen denetimleri ele alabilmek istiyorum.
Örnek: Kapımı bir yere yerleştirip bir düğme ekledim. Bu ana sayfada, kullanıcı kontrolümün bu düğmenin genişliğini ve konumunu otomatik olarak ayarlamasını istiyorum. Bu benim sıkıştığım nokta.
MessageBox
[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
public partial class ContactList : UserControl
{
public ContactList()
{
InitializeComponent();
}
private void ContactList_ControlAdded(object sender, ControlEventArgs e)
{
e.Control.Width = 200; // Nothing happens
e.Control.Height = 100; // Nothing happens
MessageBox.Show("Test"); // Firing when adding a control
}
}
iyi çalışıyor. width
ve height
setlerinin yok sayılır.
Sorun sadece "neden?" Dir. düğmesine yerleştirerek ve düğme 200x100 yeniden boyutlandırılır alır F6 ile yeniden derlenmesine zaman ben sadece fark ettik
DÜZENLEME. Neden bu yerleştirirken çalışmıyor?
Yani ... FlowLayoutPanel
, yerleştirdiğinizde ek denetimleri gerçekleştirir. İşte tam olarak aradığım davranış.
https://msdn.microsoft.com/en-us/library/system.componentmodel.design.icomponentchangeservice%28v=vs.110%29.aspx –
senin kodun temel sorunudur o kokan boyutu uygulayın. Boyutu uygulamak için, 'BeginInvoke' kullanarak boyutu ayarlamanız gerekir. –