Создание Windows-приложений на основе Visual C#


           

Удаление заданного элемента в режиме работы приложения


В рассмотренном выше примере код мы удаляли всю коллекцию элементов. Рассмотрим более сложный пример — удаление добавленного элемента по щелчку правой кнопкой мыши на нем. Создайте новое приложение и назовите его AddRemoveControls. Устанавливаем свойству AutoScroll формы значение True для возможности прокрутки формы. Добавляем на форму кнопку и помещаем ее в верхний левый угол формы. В поле свойства Text кнопки вводим Clone. Переходим в обработчик кнопки:

private void button1_Click(object sender, System.EventArgs e) { //Создаем экземпляр btn класса Button Button btn = new Button(); //Определяем количество элементов управления Control prev = (Control)this.Controls[this.Controls.Count-1]; //Устанавливаем позицию добавляемых кнопок int x1 = prev.Location.X; int y1 = prev.Location.Y; int height = prev.Height; int width = prev.Width; btn.Location = new Point(x1+ width+5, y1 + height +5); btn.Width = prev.Width; btn.Height = prev.Height; //Добавляем событие для новой кнопки и обработчик button1_Click btn.Click+= new EventHandler(button1_Click); //Устанавливаем свойство Text кнопки btn.Text = "Clone"; //Добавляем экземпляр в коллекцию this.Controls.Add(btn); //Определяем обработчик для события MouseUp экземпляра кнопки btn btn.MouseUp+= new MouseEventHandler(button1_MouseUp); }

Переключаемся в режим дизайна формы, выделяем кнопку, в окне Properties нажимаем на кнопку событий

(Events) и дважды щелкаем в поле события MouseUp:

private void button1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { if(e.Button==MouseButtons.Right) { //Удаляем данную кнопку this.Controls.Remove((Control)sender); } }

Запускаем приложение. При щелчке правой кнопкой мыши на любой из кнопок добавляется еще одна, а при щелчке левой кнопкой мыши на заданной кнопке она исчезает (рис. 3.5):


Рис. 3.5.  Результат запуска приложения AddRemoveControls

На диске, прилагаемом к книге, вы найдете приложение AddRemoveControls (Code\Glava3\ AddRemoveControls).

on_load_lecture()



Содержание  Назад  Вперед