Я не могу (повторно)инициализировать свой элемент управления при нажатии кнопки
Внутри элемента управления p1City у меня есть метод Reorder (), который переупорядочивает некоторые изображения.
Когда я нажимаю вкладку "кнопка", " public p1City()" внутри элемента управления p1City не достигается при отладке точки останова.
Однако достигается нормально, когда он начинается. (я не могу поставить весь код, так как это слишком сложно), но поверьте мне, он работает, пока я не начну нажимать кнопки.
Я вот думаю
#1
Tab01_Click недействительным(объект отправителя, EventArgs в электронной)
Управления.Удалить(p1city);
является ли удаление событием p1city?
-ИЛИ-
#2
или мне следует вручную удалить события и добавить их обратно?
удалите его с помощью : [это.Paint -= new PaintEventHandler(p1City_Paint);] (например)
Я так застрял прямо сейчас...
//inside p1City Control public p1City() { InitializeComponent(); // if (tab1Global.isEmpy) { ReOrder(); tab1Global.isEmpy = false; } } public void InitializeEvents() { this.Paint += new PaintEventHandler(p1City_Paint); this.MouseMove += new MouseEventHandler(p1City_MouseMove); } //in Form1 public Form1() { InitializeComponent(); DoubleBuffered = true; //still Big Flickerings! but manageable Controls.Clear(); InitializeButtonsEvents(); InitializeTabsEvents(); p1city.InitializeEvents(); { // Tab Tab01 = new Tab(); //it's a control named 'Tab' for some custom drawing void InitializeTabsEvents() { Tab01.Click += new EventHandler(Tab01_Click); Tab02.Click += new EventHandler(Tab02_Click); } p1City p1city = new p1City(); void Tab01_Click(object sender, EventArgs e) { // for each tab i have, i remove other specific controls from the form Controls.Remove(p1city); //then I add the corespondent tab control Controls.Add(p1City); p1City.BringToFront(); }
Что я уже пробовал:
// для каждой вкладки, которая у меня есть, я удаляю другие конкретные элементы управления из формы