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; } }
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; }