Динамическое добавление (и удаление) элементов управления
Динамическое добавление (и удаление) элементов управления
Но что делать, если нужно изменить содержимое 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.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Удаление элементов АСЕ
Удаление элементов АСЕ Функция DeleteAce удаляет АСЕ, определяемый с помощью индекса аналогично тому, как это делается в случае функции
Добавление и удаление элементов Web-страницы
Добавление и удаление элементов Web-страницы А теперь — высший пилотаж Web-программирования! Программное добавление на Web-страницу новых элементов и программное же их удаление. Для этого применяют методы объекта DomHelper.Метод append добавляет новый элемент Web-страницы в
Добавление и удаление элементов Web-страницы
Добавление и удаление элементов Web-страницы А теперь — высший пилотаж Web-программирования! Программное добавление на Web-страницу новых элементов и программное же их удаление. Для этого применяют методы объекта DomHelper.Метод append добавляет новый элемент Web-страницы в
Добавление в проект элементов и редактирование их свойств
Добавление в проект элементов и редактирование их свойств С помощью панели инструментов вкладки Building (Строение) можно вносить в проект здания недостающие элементы: окна, двери, лестницы и др. Кроме того, можно редактировать проект в объемном 3D-виде, что очень наглядно.
Добавление элементов управления из панели инструментов Toolbox
Добавление элементов управления из панели инструментов Toolbox Теперь заготовка формы на экране, и можно добавлять в нее элементы управления - всякие разные штучки в форме, с помощью которых взаимодействуют люди. Элементы управления берутся из панели элементов управления
Добавление новых элементов в панель элементов управления
Добавление новых элементов в панель элементов управления Чтобы получить возможность использовать элемент управления ActiveX, выполните следующее.1. Установите программное обеспечение элемента управления на жесткий диск.Мне кажется, это имеет смысл.2. Зарегистрируйте
Добавление и удаление элементов таблицы
Добавление и удаление элементов таблицы При редактировании таблицы иногда бывает необходимо добавлять в нее дополнительные элементы – строки или столбцы. Для этого выделите такое количество строк или столбцов, какое нужно добавить. Затем перейдите на вкладку Работа с
Добавление элементов управления в форму вручную
Добавление элементов управления в форму вручную Независимо от того, какой именно элемент управления вы выбираете для размещения в форме, последовательность шагов, которые при этом выполняются, оказывается одной и той же. Во-первых, вы должны определить члены-переменные,
Добавление элементов управления в форму в Visual Studio 2005
Добавление элементов управления в форму в Visual Studio 2005 Теперь, когда вы понимаете суть процесса добавления элементов управления в форму, давайте посмотрим, как Visual Studio 2005 может автоматизировать этот процесс. Создайте новый проект Windows Application, выбрав дня него произвольное
Динамическое позиционирование элементов управления Windows Forms
Динамическое позиционирование элементов управления Windows Forms Чтобы завершить эту главу, давайте рассмотрим несколько подходов, которые можно использовать для управления размещением элементов управления в форме. Если при создании типа Form вы предполагаете, что элементы
Добавление и удаление объектов
Добавление и удаление объектов Ну хорошо, со стандартными плашками-надписями мы уже наигрались. А что делать, если их нам, по каким-то таинственным причинам, не хватает? Как добавить в нашу «рыбу» новую надпись, картинку, объект? Давайте начнем с надписи. Чтобы создать
6.12.5. Удаление элементов map
6.12.5. Удаление элементов map Существуют три формы функции-члена erase() для удаления элементов отображения. Для единственного элемента используется erase() с ключом или итератором в качестве аргумента, а для последовательности эта функция вызывается с двумя итераторами.
Добавление элементов управления в TTabbedNotebook и TNotebook
Добавление элементов управления в TTabbedNotebook и TNotebook Я несколько раз видел в конференциях вопросы типа "как мне добавить элементы управления в TTabbedNotebook или TNotebook во время выполнения программы?". Теперь, когда у меня выдалось несколько свободных минут, я попытаюсь осветить
Добавление и удаление
Добавление и удаление Добавление переходов в проект выполняется во многом аналогично добавлению в проект видеосцен: понравившийся переход нужно просто перетащить в окно Фильм. Однако при выборе положения перехода следует учитывать некоторую особенность: переход можно
Удаление элементов Проводника
Удаление элементов Проводника Существует возможность запрета отображения некоторых элементов Проводника. В данном разделе книги мы подробнее познакомимся с этой возможностью.Удаление меню ФайлС помощью несложной операции можно удалить меню Файл из главного меню как