24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
|
|||||||||||
1 | |||||||||||
Как удалить динамически созданный контрол?23.01.2013, 23:44. Показов 3139. Ответов 6
Метки нет (Все метки)
Допустим у меня есть массив чекбоксов. И мы отметили их как true;
Если пользоваться
И при повторном вызове события, CheckBox_CheckedChanged смотрит уже на старый контрол который не удалился, как быть?
0
|
23.01.2013, 23:44 | |
Ответы с готовыми решениями:
6
Как удалить динамически созданный контрол? Как удалить динамически созданный пользовательский контрол? Как удалить динамически созданный элемент? Каждой динамически созданной кнопке свой динамически созданный PictureBox |
37 / 37 / 6
Регистрация: 06.01.2013
Сообщений: 195
|
|
24.01.2013, 03:28 | 2 |
Тут скорее всего когда ты эти checkbox создаешь, нужно им задавать значение по умолчанию, например False, и потом юзать их.
0
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
24.01.2013, 05:58 | 3 |
Saldoran, А какое поведение вы хотите? Controls.Remove всего лишь навсего удаляет Control из соответствующей коллекции формы. Так как у вас указатель на данный контрол содержится еще и в вашем массиве, то GC не съедает ваш CheckBox, поэтому при повтороном добавлении элементов массива на форму они появляются в том же виде, в котором были до удаления с формы. Если вы хотите, чтобы на форму добавлялись новые CheckBox'ы, то пересоздавайте массив перед их добавлением.
0
|
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
|
|
24.01.2013, 17:19 [ТС] | 4 |
я когда пересоздаю этот массив, при вызове события CheckBox_CheckedChanged он какбуд-то смотрит на значения старого контрола, как будто он невидимый существует гдето
0
|
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
|
||||||
24.01.2013, 17:33 | 5 | |||||
как и сказал kodv, он и существует.
Добавлять просто надо не поверхностным копированием ссылок, если не хочешь чтоб изменения контролов формы приводили к изменениям эллементов твоего массива, то контролы необходимо создавать.
правда как такие удалять не помню, по моему по ключу Name
0
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||||||
24.01.2013, 18:07 | 6 | |||||
Saldoran, Каким образом вы его пересоздаете? Так:
0
|
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
|
|||||||||||
24.01.2013, 23:03 [ТС] | 7 | ||||||||||
По ключу тоже самое Добавлено через 3 часа 36 минут Проблема была решена с помощью Dispose() Далее чтоб добавить контрол обратно, приходиться его инициализировать заного
0
|
24.01.2013, 23:03 | |
24.01.2013, 23:03 | |
Помогаю со студенческими работами здесь
7
Как убить поток, созданный динамически Как подписать на событие динамически созданный компонент Как получить данные, введенные в динамически созданный элемент TextBox? Как удалить программно созданный TextBox() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |