自製控制項集合輸入
主要目的:在屬性設定畫面可以設定自製控制項集合
操作畫面:
執行畫面:
程式碼:
需要兩個 UserControl1、UserControl2 ,UserControl1 包含 UserControl2
public partial class UserControl1 : UserControl
{
private List<UserControl2> MyUC_Temp = null;
//將自製控制項,設定在設計時就能從面板設定集合的方法
//不用 set !!
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[Localizable(true)]
[MergableProperty(false)]
public List<UserControl2> MyUC
{
get {
RefreshButton();
return MyUC_Temp;
}
}
public UserControl1()
{
InitializeComponent();
if (MyUC_Temp == null)
{
MyUC_Temp = new List<UserControl2>();
}
}
public UserControl1(List<UserControl2> newMyUC)
{
InitializeComponent();
MyUC_Temp = newMyUC;
}
public void RefreshButton()
{
if (MyUC_Temp != null)
{
foreach (Control nowControl in panelButton.Controls)
{
panelButton.Controls.Remove(nowControl);
}
for (int index = 0; index < MyUC_Temp.Count; index++)
{
UserControl2 nowUserControl = MyUC_Temp[index];
int UserControlHeight = index * nowUserControl.Height;
nowUserControl.Top = UserControlHeight;
nowUserControl.Left = 1;
nowUserControl.Width = panelButton.Width - 4;
panelButton.Controls.Add(nowUserControl);
}
label1.Text = ">>" + MyUC_Temp.Count;
}
else
{
label1.Text = "null";
}
}
}
[Serializable]
public partial class UserControl2 : UserControl
{
public UserControl2()
{
InitializeComponent();
}
}



留言
張貼留言