自製控制項集合輸入

主要目的:在屬性設定畫面可以設定自製控制項集合

操作畫面:

 

執行畫面:


程式碼:
需要兩個 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();
        }
    }



留言

這個網誌中的熱門文章

Javascript Dialog 自訂輸入視窗 (五) 回傳資料事件及處理

RMMV 雜記 - 角色及劇情