Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_programmirovaniyu_voprosy_21-40.docx
Скачиваний:
5
Добавлен:
25.09.2019
Размер:
90.14 Кб
Скачать

35. Стандартные элементы управления: списки, окна диалога.

Выполняя различные операции с документом — открытие, сохранение, печать, предварительный просмотр, — мы сталкиваемся с соответствующими диалоговыми окнами. Разработчикам .NET не приходится заниматься созданием окон стандартных процедур: элементы OpenFileDialog, SaveFile Dialog, ColorDialog, PrintDialog содержат уже готовые операции.

Перед программистом часто встает задача организации списков, предназначенных для выбора строки из некоторого заранее определенного набора строк. Список класса ListBox. В процессе визуального проектирования приложения для создания списка ListBox программист перетаскивает значок этого списка, расположенный на инструментальной панели Toolbox. При этом в приложение будет добавлен следующий программный код:

this.listBox1 = new System.Windows.Forms.ListBox();

Здесь список создается как объект класса System.Windows.Forms.ListBox.

Сразу после создания список пуст. Редактируя свойство Items, можно добавить в список необходимое количество строк.

Список класса ComboBox. Как мы уже говорили, элемент управления ComboBox представляет собой комбинацию однострочного редактора текста и списка. Когда пользователь щелкает кнопку со стрелкой, расположенную в правой части окна элемента управления ComboBox, список раскрывается, и пользователь может выбрать из него нужную строку. Если же такой строки нет, или если пользователь не желает ее искать, строку можно ввести непосредственно с клавиатуры в поле редактирования.

После создания программа добавляет в список новые строки с помощью метода AddRange:

this.comboBox1 = new System.Windows.Forms.ComboBox(); … this.comboBox1.Items.AddRange(   new object[]   {      "Каждый",      "Охотник",      "Желает",      "Знать",      "Где",      "Сидит",      "Фазан"   } );

Элемент управления NumericUpDown. Хотя, строго говоря, элемент управления NumericUpDown и не является списком в обычном понимании этого слова, он позволяет изменять цифровые значения, «прокручивая» их в окне при помощи кнопок со стрелками.

Вот как программа создает элемент управления NumericUpDown:

this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();

36. Динамическое создание и удаление элементов управления.

Для добавления элементов управления во время работы приложения используется объект ControlsCollection, содержащий ряд методов. Под коллекцией элементов понимается их упорядоченная последовательность. Рассмотрим пример: при нажатии на кнопку будем создавать на форме еще одну кнопку, при нажатии на созданную будем создавать еще одну кнопку и т.д. При щелчке правой кнопкой мыши по любой из кнопок, она будет удаляться.

private void button1_Click(object sender, System.EventArgs e)

{

//Создаем экземпляр btn класса Button

Button btn = new Button();

//Определяем количество элементов управления и находим последний

//добавленный на форму control

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);

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]