protected virtual void OnDuplicateControl(AddRemoveUserControlEventArgs e)
        {
            EventHandler <AddRemoveUserControlEventArgs> handler = DuplicateControl;

            if (handler != null)
            {
                handler(this, e);
            }
        }
        private void btnRemove_Click(object sender, EventArgs e)
        {
            AddRemoveUserControlEventArgs args = new AddRemoveUserControlEventArgs();

            args.Action           = AddRemoveUserControl.Remove;
            args.TypeUserControl  = this.GetType();
            args.UserControl      = this;
            args.ControlContainer = this.Parent;
            OnDuplicateControl(args);
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            AddRemoveUserControlEventArgs args = new AddRemoveUserControlEventArgs();

            args.Action           = AddRemoveUserControl.Add;
            args.TypeUserControl  = this.GetType();
            args.UserControl      = this;
            args.ControlContainer = this.Parent;
            OnDuplicateControl(args);

            btnAdd.Visible = false;
            if (!isfirst)
            {
                //btnRemove.Location = btnAdd.Location;
                btnRemove.Visible = true;
            }
        }
Exemple #4
0
        private void DuplicateControl(object sender, AddRemoveUserControlEventArgs e)
        {
            if (e.Action == AddRemoveUserControl.Add)
            {
                switch (e.UserControl.GetType().Name)
                {
                case "DateTimeUserControl":
                    createOneDateTimeUserControl();

                    break;
                }
            }
            else
            {
                switch (e.UserControl.GetType().Name)
                {
                case "DateTimeUserControl":
                    int index = listDateTimeUserControl.FindIndex(a => a == e.UserControl);
                    if (index > -1)
                    {
                        listDateTimeUserControl.RemoveAt(index);
                    }

                    break;
                }
                e.ControlContainer.Controls.Remove((UserControl)sender);
                for (int i = 0; i < listDateTimeUserControl.Count; i++)
                {
                    if (i == 0)
                    {
                        ((IDuplicable)listDateTimeUserControl[i]).IsFirst = true;
                    }
                    else
                    {
                        ((IDuplicable)listDateTimeUserControl[i]).IsFirst = false;
                    }

                    if (i == listDateTimeUserControl.Count - 1)
                    {
                        ((IDuplicable)listDateTimeUserControl[i]).IsLast = true;
                    }
                    else
                    {
                        ((IDuplicable)listDateTimeUserControl[i]).IsLast = false;
                    }
                }
            }

            //UserControl control = (UserControl)Activator.CreateInstance(e.UserControl.GetType());


            //DateTimeClass _dt = new DateTimeClass();
            //_dt.TimeZone = TimeZoneInfo.Local;
            //((IDuplicable)control).DataSource = _dt;

            //e.ControlContainer.Controls.Add(control);


            //((IDuplicable)control).IsFirst = false;

            //((IDuplicable)control).DuplicateControl += DuplicateControl;
        }