Удаление Контрола из коллекции

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Саша_ОР
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 08.01.2006 (Вс) 19:48

Удаление Контрола из коллекции

Сообщение Саша_ОР » 30.04.2006 (Вс) 17:44

Здравствуйте. Подскажите пожалуйста, как можно удалить Контрол програмно во время работы программы. Желательно, чтобы можно быдо удалять и массив Контролов. :?:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.04.2006 (Вс) 17:52

Какой именно? Добавленный в дизайне? Нельзя.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Саша_ОР
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 08.01.2006 (Вс) 19:48

Сообщение Саша_ОР » 30.04.2006 (Вс) 18:02

GSerg писал(а):Какой именно? Добавленный в дизайне? Нельзя.

Неужели нет никакого способа, чтобы удалить Контрол из коллекции, например, удалить Command1(0)...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.04.2006 (Вс) 18:04

Выгружать в рантайме можно только то, что создавалось в рантайме.
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.04.2006 (Вс) 18:04

Ещё раз.
Добавленные в дизайне нельзя. Остальные можно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 30.04.2006 (Вс) 18:21

Вариант решения - создавать те контролы, которые потом нужно удалить, в рантайме.

Зачем вообще удалять контрол?

Gotha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 106
Зарегистрирован: 20.04.2006 (Чт) 10:55
Откуда: Красногорск

Сообщение Gotha » 30.04.2006 (Вс) 18:29

короче любому контролу можно присвоить индекс, после чего он получает способность к размножению.. самый изначальный контрол из которого рождаются остальные умертвить нельзя, а вобще те которые можно удалить удаляются с помощью Unload Command1(1,2,3 и т.д.) и загружаются соответственно Load Command1(1,2,3 и т.д.) (это если допустим Command1(0) был "папой" всех наследуемых) :oops:
Du stirbst. Besitz stirbt.
Die Sippen sterben.
Der einzig lebt - wir wissen es
Der Toten Tatenruhm.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.04.2006 (Вс) 18:32

Gotha, и к чему ты это сказал? Чтобы доказать, что топик не читал?
Lasciate ogni speranza, voi ch'entrate.

Саша_ОР
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 08.01.2006 (Вс) 19:48

Сообщение Саша_ОР » 30.04.2006 (Вс) 18:37

Gotha писал(а):короче любому контролу можно присвоить индекс, после чего он получает способность к размножению.. самый изначальный контрол из которого рождаются остальные умертвить нельзя, а вобще те которые можно удалить удаляются с помощью Unload Command1(1,2,3 и т.д.) и загружаются соответственно Load Command1(1,2,3 и т.д.) (это если допустим Command1(0) был "папой" всех наследуемых) :oops:

Команда Load работает, но команда Unload ругается и говорит, что нельзя удалить Контрол, созданный во время проектирования. А как же быть, если Контрол мешает, грузит программу и процессор и от него нужно избавиться? :!: :?:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.04.2006 (Вс) 18:41

Значит нужно надавать себе по рукам и перепроектировать программу.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Саша_ОР
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 08.01.2006 (Вс) 19:48

Сообщение Саша_ОР » 30.04.2006 (Вс) 18:42

Прошу прощения. Он заругался, что я удалил созданный во время проектирования Контрол, а так все работает. Всем большое спасибо!!! :lol: :lol: :lol: :lol: :oops:

Gotha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 106
Зарегистрирован: 20.04.2006 (Чт) 10:55
Откуда: Красногорск

Сообщение Gotha » 30.04.2006 (Вс) 18:45

alibek шибко звиняюсь, но так хотелось написать) просто форум хороший, вот сижу все читаю) и хочется активно участвовать) :oops:
Du stirbst. Besitz stirbt.
Die Sippen sterben.
Der einzig lebt - wir wissen es
Der Toten Tatenruhm.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.04.2006 (Вс) 18:52

Активно участвовать чтением - это поначалу самое замечательное и правильное (да, Gotha, именно этим поначалу долго занимался я).
Активно участвовать постингами полезно и правильно на той стадии, когда можешь уверенно отличить глупый постинг от неглупого. Иначе, дабы постинг не направил кого-либо по ложному пути, придётся придти нам всем таким злым и спросить - Gotha, а почему ты опять сказал глупость? И будет опять смайлик :oops:

Вот, чё-то потянуло меня на рассуждения о высоких материях под утро...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 30.04.2006 (Вс) 18:55

Вообще в Run-time надо создавать контрoлы так:
Код: Выделить всё
Option Explicit
Private WithEvents btn As CommandButton

Private Sub Form_Load()
Set btn = Me.Controls.Add("VB.CommandButton", "Command1")
btn.Visible = True
btn.Caption = "Кнопка, созданная в рантайме"
btn.Width = 3000
End Sub

Private Sub btn_Click()
MsgBox "Вы кликнули по кнопке, ссылка на которую лежит в переменой btn", , ""
End Sub



И никаких проблем с выгрузкой.
Изображение

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 01.05.2006 (Пн) 10:16

Судя по названию темы "Удаление Контрола из коллекции", ответ такой:
Dim a As New Collection
a.add т..т.т.т
a.Remove т..тт..т
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.05.2006 (Пн) 10:33

Роман-вб, нет. Имеется в виду "системная" коллекция Controls, в которой находятся все контролы на форме.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Majestic-12 [Bot] и гости: 185

    TopList  
cron