カスタムコンテナをUserControl
として作成しようとしています。コンテナUserControl - コントロールの追加と修正
私の目標:デザイナーの内部でコントロールをドラッグし、自分のコントロールのコード内に入ってくるコントロールを処理できるようにします。
例:私は自分のコンテナをどこかに置き、ボタンを追加します。このモーメントでは、私のユーザコントロールがこのボタンの幅と位置を自動的に調整したいと思っています。それは私がついたポイントです。
マイコード:
[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
}
}
MessageBox
がうまく機能しています。セットwidth
とheight
は無視されます。
質問は「なぜですか?」です。ボタンを配置し、ボタンは200x100にリサイズされますF6で再コンパイルするとき、私はただ、気づいた
EDIT。配置時にこれがなぜ機能しないのですか?
つまり、FlowLayoutPanel
は、追加したコントロールを右に置くと処理されます。それは、正確な行動を探しています。使用
https://msdn.microsoft.com/en-us/library/system.componentmodel.design.icomponentchangeservice%28v=vs.110%29.aspx –
あなたのコードの主な問題は、それはdoesnのサイズを適用しないでください。サイズを適用するには、 'BeginInvoke'を使用してサイズを設定する必要があります。 –