Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
mrReptiloid
311 / 174 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
1

Удаление динамически созданного контрола

13.11.2011, 21:17. Просмотров 1140. Ответов 11
Метки нет (Все метки)

Создаю новый label...
переменная I2-это количество созданных контролов,также используется для имени нового контрола...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Label lb;
int I2;
void MainForm_MouseClick(object sender, MouseEventArgs e)
        {
            if(radioButton3.Checked==true){
                I2+=1;
            lb = new Label();
            lb.Name="numb"+I2;
        lb.Width=28;
          lb.FlatStyle=FlatStyle.Standard;
            lb.BackColor=Color.Transparent;
            lb.Height=16;   
            lb.Left = e.X;
            lb.Top = e.Y;
            string strFont = "Times New Roman";
            Font myfont=new Font(strFont, 8);
            lb.Font=myfont;
            lb.Text=numericUpDown1.Value.ToString();
            lb.MouseDown+= new MouseEventHandler(lb_MouseDown);
            lb.MouseMove+=new MouseEventHandler(lb_MouseMove);
            lb.MouseUp+=new MouseEventHandler(lb_MouseUp);
            lb.KeyDown+= new KeyEventHandler(lb_KeyDown);
            
            this.Controls.Add(lb);
            }
}
Но когда нужно его удалить,при нажатии клавиши delete ничего не происходит..Почему?Удаляю вот так
C#
1
2
3
4
5
6
7
8
9
10
11
    void lb_KeyDown(object sender,KeyEventArgs e)
        {
        Control c = sender as Control;
        if (e.KeyCode==Keys.Delete)
        {
            this.Controls["numb"+I2].Name=c.Name;
            Controls.Remove(c);
            I2-=1;  
        }
 
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 21:17
Ответы с готовыми решениями:

Удаление динамически созданного контрола
Здравствуйте уважаемые форумчани. Проблема в следующем, динамически создаю...

Обработчик события динамически созданного контрола
Есть событие контрола panel_MouseMove, panel динамически создан и поэтому при...

Возвратить текст динамически созданного контрола
Доброго всем дня. Подскажите как вытащить .text из програмно созданного...

Чтение данных из динамически созданного контрола
Доброго, форумчане. Как можно получить данные из textbox созданного...

Добавление контрола, созданного динамически, в событие
у меня есть такой вот метод, в котором создаются TabControl, TabPage и Button. ...

11
Suslik73
2 / 2 / 1
Регистрация: 11.10.2009
Сообщений: 52
13.11.2011, 21:23 2
А он в функцию-обработчик то вообще заходит?
0
mrReptiloid
311 / 174 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
13.11.2011, 21:39  [ТС] 3
Цитата Сообщение от Suslik73 Посмотреть сообщение
А он в функцию-обработчик то вообще заходит?
походу нет..,а какой выход тогда?как удалить динамически созданный label?
0
Suslik73
2 / 2 / 1
Регистрация: 11.10.2009
Сообщений: 52
13.11.2011, 21:59 4
так все таки, заходит он в обработчик или нет? если нет - выход такой: у формы значение свойства KeyPreview измени на true. Если же не поможет, у контрола меняй свойство visibility на false
0
mrReptiloid
311 / 174 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
13.11.2011, 22:10  [ТС] 5
Цитата Сообщение от Suslik73 Посмотреть сообщение
так все таки, заходит он в обработчик или нет? если нет - выход такой: у формы значение свойства KeyPreview измени на true. Если же не поможет, у контрола меняй свойство visibility на false
ничего не помогает..Я так понимаю это потому что не нем не может быть установлен фокус??
0
andrii
183 / 183 / 53
Регистрация: 10.04.2009
Сообщений: 491
13.11.2011, 22:41 6
обратное движение?
C#
1
с.Parent.Controls.Remove(с);
0
mrReptiloid
311 / 174 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
13.11.2011, 22:50  [ТС] 7
Цитата Сообщение от andrii Посмотреть сообщение
обратное движение?
C#
1
с.Parent.Controls.Remove(с);
Бесполезно,проблема-то не в этом,а в событии..на контрол label нельзя установить фокус,по-этому и не хочет удалять....Есть ли альтернативы какие-то?
0
FakiR
Level 2
396 / 270 / 48
Регистрация: 22.11.2010
Сообщений: 781
Записей в блоге: 1
Завершенные тесты: 1
13.11.2011, 23:04 8
А почему бы не создать событие KeyDown для формы, а не для лэйбла?
1
mrReptiloid
311 / 174 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
13.11.2011, 23:07  [ТС] 9
Цитата Сообщение от FakiR Посмотреть сообщение
А почему бы не создать событие KeyDown для формы, а не для лэйбла?
А если создавать событие для формы,как работать с выбранным label?
C#
1
Control c = sender as Control;
так уже не выйдет...
0
andrii
183 / 183 / 53
Регистрация: 10.04.2009
Сообщений: 491
13.11.2011, 23:10 10
label focus
1
FakiR
Level 2
396 / 270 / 48
Регистрация: 22.11.2010
Сообщений: 781
Записей в блоге: 1
Завершенные тесты: 1
13.11.2011, 23:12 11
Да, точно, я сначала не понял для чего нужно это всё. Вряд ли удастся удалить label таким образом, он же фокус не может получить.
0
mrReptiloid
311 / 174 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
13.11.2011, 23:35  [ТС] 12
Цитата Сообщение от FakiR Посмотреть сообщение
Да, точно, я сначала не понял для чего нужно это всё. Вряд ли удастся удалить label таким образом, он же фокус не может получить.
Вообщем решил использывать не label,а текстбокс,с ним легче..
0
13.11.2011, 23:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2011, 23:35

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

Требуется ли очистка ресурсов при удалении динамически созданного контрола?
Нужно ли очищать ресурсы и отключать подписку на события при удалении контролов...

Удаление элемента управления RichTextBox, созданного динамически, с формы
Создаю RichTextBox таким образом. RichTextBox myText = new RichTextBox();...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru