Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление динамического компонента 
:(
    Опции темы
Fyrklod
Дата 2.10.2007, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 17.10.2006

Репутация: нет
Всего: 1



В топе http://forum.vingrad.ru/forum/topic-174772.html я уже спрашивал как создавать на форме в программе компонент ... пришел черед его удалить....
пришла как бы мысль, делать на эту панель СontextMenu,  но как на мою созданную уже в программе панель направить эту Меню?

И вообще обобщая данную пробелму .. как в программе описывать действия над не существующими элиментами? т.е. клик по панели, которая появится только в процессе программы

заранее спасибо
--------------------
Зачем компьютеры пищат, когда нажимаешь сразу много клавиш? Чтобы будить уснувших на клавиатуре программистов!
PM MAIL   Вверх
marcusmae
Дата 2.10.2007, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 22
Всего: 39



Цитата(Fyrklod @  2.10.2007,  09:31 Найти цитируемый пост)
пришла как бы мысль, делать на эту панель СontextMenu,  но как на мою созданную уже в программе панель направить эту Меню?


Не-не, немножко не так. Если я правильно понял вопрос, то для того, чтобы оперировать с контекстным меню обычно не нужно описывать его появление, исчезновение и тп. Руки отвалятся писать smile На самом деле, почти для всех контролов предусмотрено свойство ContextMenuStrip, которому присваивается ссылка на одно из всплывающих контестных меню, которые ты можеш создать, например, просто бросая их на форму в дизайнере. Установив это свойство, можно проверить, что контекстное меню будет появляться при нажатии на правую кнопку в клиентской области контрола.

Цитата(Fyrklod @  2.10.2007,  09:31 Найти цитируемый пост)
как в программе описывать действия над не существующими элиментами?

т.е., теми, которые ещё не появились, но появятся. Ответ : как угодно. Здесь лучше какой-нибудь конкретный пример посмотреть.

А по поводу удаления - у свойства .Controls родительского контрола для этого есть три функции :
Код

            this.Controls.Remove(control); // удалить контрол по ссылке
            this.Controls.RemoveAt(controlIndex); // удалить контрол по номеру индекса
            this.Controls.RemoveByKey(controlName); // удалить контрол по имени контрола



--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
archeg
Дата 2.10.2007, 12:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



Цитата(Fyrklod @  2.10.2007,  09:31 Найти цитируемый пост)
как в программе описывать действия над не существующими элиментами?

Код

Button MyButton = new Button();
this.Controls.Add(MyButton);
// Изменяешь свойства
MyButton.Text = "My Dynamic Button";
// Цепляешь событие
MyButton += delegate {MessageBox.Show("Button pressed")};
// Удаляшь елемент
this.Controls.Remove(MyButton);

По-скольку ты каждый раз будешь создавать / удалять елемент - это довольно медленно - лучше всего просто поставиь MyButton.Visible = false;

Хранишь где-то у себя масив всех твоих созданых кнопочек и управляешь ими через этот масив) Как вариант можно сразу перебирать в форме контролы:
Код

foreach (Conrol ctr in this.Controls)
{
   if (ctr is Button)
   {
      (Button)ctr.Text = "New button caption";
   }
   if (ctr.Name = "myTextBox")  (TextBox)ctr.Text = "This is textbox";
 
}




--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.