Динамическое добавление (и удаление) элементов управления

Динамическое добавление (и удаление) элементов управления

Но что делать, если нужно изменить содержимое Panel в среде выполнения? Соответствующий процесс должен показаться вам очень знакомым, если вы внимательно прочитали материал книги, посвященный работе с Windows Forms. Давайте добавим в текущую страницу кнопку (с названием btnAddWidgets), которая будет динамически добавлять в Panel пять новых типов TextBox, и еще одну кнопку, которая будет выполнять очистку Panel от всех элементов управления. Обработчики событий Click для этих кнопок приведены ниже.

protected void btnAddWidgets_Click(object sender, EventArgs e) {

 for (int i = 0; i ‹ 5; i++) {

  // Назначение имени, чтобы позже получить соответствующее

  // текстовое значение с помощью метода

  // HttpRequest.QueryString().

  TextBox t = new TextBox();

  t.ID = string.Format("newTextBox{0}", i);

  myPanel.Controls.Add(t);

  ListControlsInPanel();

 }

}

protected void btnRemovePanelItems_Click(object sender, EventArgs e) {

 myPanel.Controls.Clear();

 ListControlsInPanel();

}

Обратите внимание на то, что каждому TextBox назначается уникальное значение ID (newTextBox1, newTextBox2 и т.д.), чтобы можно было программными средствами получить содержащийся в этих элементах текст, используя коллекцию HttpRequest.Form (как будет показано чуть позже).

Чтобы получить значения этих динамически генерируемых типов TextBox, добавьте в пользовательский интерфейс еще один тип Button и тип Label. В пределах обработчика события Click для Button реализуйте цикл по всем элементам, содержащимся в рамках типа HttpRequest.NameValueCollection (доступного с помощью HttpRequest.Form), добавляя полученную текстовую информацию к локальному типу System.String. По завершении обработки коллекции назначьте эту строку свойству Text нового элемента Label с именем lblTextBoxText.

protected void btnGetTextBoxValues_Click(object sender, System.EventArgs e) {

 string textBoxValues = "";

 for(int i = 0; i ‹ Request.Form.Count; i++) {

  textBoxValues += string.Format("‹li›{0}‹/li›‹br›", Request.Form[i]);

 }

 lblTextBoxText.Text = textBoxValues;

}

Запустив приложение, вы сможете увидеть как содержимое текстовых блоков, так и довольно длинные ("нечитаемые") строки. Такие строки отражают визуальное состояние элементов на странице и будут рассматриваться позже, в следующей главе. Также вы заметите, что после обработки запроса новые текстовые окна исчезают. Причина опять кроется в природе HTTP – этот протокол не обеспечивает сохранения состояния. Чтобы динамически созданные типы TextBox сохранялись после вторичных запросов, вы должны сохранить состояния этих объектов, используя соответствующие приемы программирования ASP.NET (эти вопросы также рассматриваются в следующей главе).

Исходный код. Файлы примера DynamicCtrls размещены в подкаталоге, соответствующем главе 23.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Добавление и удаление объектов

Из книги Microsoft Office автора Леонтьев Виталий Петрович

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


Добавление в проект элементов и редактирование их свойств

Из книги Ландшафтный дизайн на компьютере автора Орлов Андрей Сергеевич

Добавление в проект элементов и редактирование их свойств С помощью панели инструментов вкладки Building (Строение) можно вносить в проект здания недостающие элементы: окна, двери, лестницы и др. Кроме того, можно редактировать проект в объемном 3D-виде, что очень наглядно.


Удаление элементов Проводника

Из книги Тонкости реестра Windows Vista. Трюки и эффекты автора Клименко Роман Александрович

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


Добавление элементов управления в форму вручную

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

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


Добавление элементов управления в форму в Visual Studio 2005

Из книги Советы по Delphi. Версия 1.0.6 автора Озеров Валентин

Добавление элементов управления в форму в Visual Studio 2005 Теперь, когда вы понимаете суть процесса добавления элементов управления в форму, давайте посмотрим, как Visual Studio 2005 может автоматизировать этот процесс. Создайте новый проект Windows Application, выбрав дня него произвольное


Динамическое позиционирование элементов управления Windows Forms

Из книги Pinnacle Studio 11 автора Чиртик Александр Анатольевич

Динамическое позиционирование элементов управления Windows Forms Чтобы завершить эту главу, давайте рассмотрим несколько подходов, которые можно использовать для управления размещением элементов управления в форме. Если при создании типа Form вы предполагаете, что элементы


Добавление элементов управления в TTabbedNotebook и TNotebook

Из книги Word 2007.Популярный самоучитель автора Краинский И

Добавление элементов управления в TTabbedNotebook и TNotebook Я несколько раз видел в конференциях вопросы типа "как мне добавить элементы управления в TTabbedNotebook или TNotebook во время выполнения программы?". Теперь, когда у меня выдалось несколько свободных минут, я попытаюсь осветить


Добавление и удаление

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Добавление и удаление Добавление переходов в проект выполняется во многом аналогично добавлению в проект видеосцен: понравившийся переход нужно просто перетащить в окно Фильм. Однако при выборе положения перехода следует учитывать некоторую особенность: переход можно


Добавление и удаление элементов таблицы

Из книги Справочник по PHP автора

Добавление и удаление элементов таблицы При редактировании таблицы иногда бывает необходимо добавлять в нее дополнительные элементы – строки или столбцы. Для этого выделите такое количество строк или столбцов, какое нужно добавить. Затем перейдите на вкладку Работа с


Удаление элементов АСЕ

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

Удаление элементов АСЕ Функция DeleteAce удаляет АСЕ, определяемый с помощью индекса аналогично тому, как это делается в случае функции


Добавление и удаление элементов Web-страницы

Из книги VBA для чайников автора Каммингс Стив

Добавление и удаление элементов Web-страницы А теперь — высший пилотаж Web-программирования! Программное добавление на Web-страницу новых элементов и программное же их удаление. Для этого применяют методы объекта DomHelper.Метод append добавляет новый элемент Web-страницы в


Добавление и удаление элементов Web-страницы

Из книги C++ для начинающих автора Липпман Стенли

Добавление и удаление элементов Web-страницы А теперь — высший пилотаж Web-программирования! Программное добавление на Web-страницу новых элементов и программное же их удаление. Для этого применяют методы объекта DomHelper.Метод append добавляет новый элемент Web-страницы в


Добавление элементов управления из панели инструментов Toolbox

Из книги автора

Добавление элементов управления из панели инструментов Toolbox Теперь заготовка формы на экране, и можно добавлять в нее элементы управления - всякие разные штучки в форме, с помощью которых взаимодействуют люди. Элементы управления берутся из панели элементов управления


Добавление новых элементов в панель элементов управления

Из книги автора

Добавление новых элементов в панель элементов управления Чтобы получить возможность использовать элемент управления ActiveX, выполните следующее.1. Установите программное обеспечение элемента управления на жесткий диск.Мне кажется, это имеет смысл.2. Зарегистрируйте


6.12.5. Удаление элементов map

Из книги автора

6.12.5. Удаление элементов map Существуют три формы функции-члена erase() для удаления элементов отображения. Для единственного элемента используется erase() с ключом или итератором в качестве аргумента, а для последовательности эта функция вызывается с двумя итераторами.