Покинул форум
Сообщений всего: 23
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
Всем привет!
Вообщем проблема такого рода:
Динамически создается TextBox и Button, как при событии Button.Click получить значение TextBox.Text?
Самогонщик
Отправлено: 29 Октября, 2011 - 12:21:04
Посетитель
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
sweb пишет:
Всем привет!
Вообщем проблема такого рода:
Динамически создается TextBox и Button, как при событии Button.Click получить значение TextBox.Text?
Делаю смелое предположение что речь идёт о WinForm, и предлагаю просто сохранять где-нибудь указатель на TextBox и в обработчике получать введённый текст. Вообще бы надо код посмотреть.
З.Ы. А знаете ли вы, что подписываясь на событие динамически созданной кнопки, вы неявно храните ссылку на эту самую кнопку. Т.е. после того как кнопка становится ненужна, её недостаточно удалить с формы, нужно ещё её отписать, иначе она так и останется висеть в памяти. Такая вот утечка памяти.
sweb
Отправлено: 29 Октября, 2011 - 12:29:04
Новичок
Покинул форум
Сообщений всего: 23
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
Вот код:
for(i=0...
//button
add_database[i] = new Button();
add_database[i].Text = "add";
add_database[i].Name = "add_" + i;
add_database[i].Click += new EventHandler(add_database);
list[i].Controls.Add(add_database[i]);
//textbox
textbox[i] = new TextBox();
textbox[i].Location = new Point(90, 14);
textbox[i].Name = "file_name_" + i;
list[i].Controls.Add(textbox[i]);
Надо как то поймать этот textbox[i] в add_database(object sender, EventArgs e)
Самогонщик
Отправлено: 29 Октября, 2011 - 12:43:55
Посетитель
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
sweb пишет:
Вот код:
for(i=0...
//button
add_database[i] = new Button();
add_database[i].Text = "add";
add_database[i].Name = "add_" + i;
add_database[i].Click += new EventHandler(add_database);
list[i].Controls.Add(add_database[i]);
//textbox
textbox[i] = new TextBox();
textbox[i].Location = new Point(90, 14);
textbox[i].Name = "file_name_" + i;
list[i].Controls.Add(textbox[i]);
Надо как то поймать этот textbox[i] в add_database(object sender, EventArgs e)
Если решать в лоб, то нужно как сделать так чтобы можно было получить номер кнопки. Сама кнопка передаётся в объекте sender и у нее есть замечательное поле Tag, туда можно положить i, а потом достать.
З.Ы. Тут есть тег для кода, будет лучше смотреться.
JustUserR
Отправлено: 31 Октября, 2011 - 12:23:06
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
sweb пишет:
Как при событии Button.Click получить значение TextBox.Text?
В качестве основы для система получения событий для пользовательских интерфейсных элементов в среде .NET, осуществляется использование унифицированных функций делегатов, которые включают аргументы, ассоциированне с параметрами соответственного зафиксированного события, а также объекта, обесеечившего его инициацию в соответсвии со стеком функциональных объектов обработки
Таким образом для получения оригинального объекта, осуществившего запуск целевого события, достаточно использовани конструкции типа cast object as type
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Самогонщик
Отправлено: 31 Октября, 2011 - 13:29:49
Посетитель
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
JustUserR пишет:
sweb пишет:
Как при событии Button.Click получить значение TextBox.Text?
В качестве основы для система получения событий для пользовательских интерфейсных элементов в среде .NET, осуществляется использование унифицированных функций делегатов, которые включают аргументы, ассоциированне с параметрами соответственного зафиксированного события, а также объекта, обесеечившего его инициацию в соответсвии со стеком функциональных объектов обработки
Таким образом для получения оригинального объекта, осуществившего запуск целевого события, достаточно использовани конструкции типа cast object as type
Мой мозг сломан, но я всё же спрошу: как нам поможет знание объекта кнопки в получении значения текстового поля?
JustUserR
Отправлено: 01 Ноября, 2011 - 17:39:56
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Самогонщик пишет:
Мой мозг сломан, но я всё же спрошу: как нам поможет знание объекта кнопки в получении значения текстового поля?
Основной решения предполагаемой задаи указанным методом, является использование иерархической структуры, позволяющей осуществить получение сслыки на целевой объект на основании его релативного расположения в группе вложенных визуализационных объектов; кроме того в любом случае допустимо использование статического элемента класса, включающего protected override-методы для включения в стек событий для активного элемента управления
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Самогонщик
Отправлено: 01 Ноября, 2011 - 17:50:46
Посетитель
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
JustUserR пишет:
Самогонщик пишет:
Мой мозг сломан, но я всё же спрошу: как нам поможет знание объекта кнопки в получении значения текстового поля?
Основной решения предполагаемой задаи указанным методом, является использование иерархической структуры, позволяющей осуществить получение сслыки на целевой объект на основании его релативного расположения в группе вложенных визуализационных объектов; кроме того в любом случае допустимо использование статического элемента класса, включающего protected override-методы для включения в стек событий для активного элемента управления
Вот так сразу и сказал бы.
Думаю использование свойства тег вполне достаточно. Можно туда положить любую метаинформацию (читай класс) на основе которой принимать решение о выполняемом действии.
JustUserR
Отправлено: 01 Ноября, 2011 - 18:48:14
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Самогонщик пишет:
Вот так сразу и сказал бы.
Думаю использование свойства тег вполне достаточно. Можно туда положить любую метаинформацию (читай класс) на основе которой принимать решение о выполняемом действии.
В действительности технология .NET предоставляет множество методов решения предполагаемой задачи, при этом возможно осуществление ее решения без включения реальных программных элементов, отвечающих за введение соответственной ассоциации между объектами
В частности возможно использование параметров Binding и Datacontext, которые позволяют установить непосредственную связь между значением характеристического информационного поля одного объекта, и некоторым выбранным элементом
Некоторая информация по рассматриваемому вопросу расположена здесь http://habrahabr[dot]ru/blogs/net/41481/ , и в поисковой системе по соответственному запросу
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Самогонщик
Отправлено: 01 Ноября, 2011 - 20:23:50
Посетитель
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
Ну вот, скаждым разом всё человечнее и человечнее получается. Надеюсь не только я понимаю написанное.
Исходя из строчки add_database[i].Click я могу смело предположить что это винФорм, соответственно, приведённая по ссылке статья ничем не поможет в решении данной проблемы.
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Самогонщик пишет:
Да и автор вопроса пропал.
- думаю, он не относится к тем, кто
Самогонщик пишет:
Надеюсь не только я понимаю написанное.
Не обращайте внимания, если Вы поняли с первого прочтения, значит, пост был тривиален.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
JustUserR
Отправлено: 01 Ноября, 2011 - 21:38:54
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Самогонщик пишет:
Исходя из строчки add_database[i].Click я могу смело предположить что это винФорм, соответственно, приведённая по ссылке статья ничем не поможет в решении данной проблемы.
В действительности на основании предполагаемой области программы для целевой платформы .NET, возможно осуществление ее классификации как графического настолького приложения, основанного на базовых классах System.Forms, тем не менее технология привязки информационных полей доступна и для приложений, отличных от Windows Presentation Foundation, поскольку данное свойство было внедрено в предшествующих технологиях элементов управления
Кроме того указанная статья в общей мере осуществляет демонстрацию технологии привязки информационных полей, в качестве примера для которой используется XAML-подобная разметка для определения объектов управления, однако это не означает исключение взаимной заменяемости
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Самогонщик
Отправлено: 02 Ноября, 2011 - 15:51:05
Посетитель
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
JustUserR пишет:
Кроме того указанная статья в общей мере осуществляет демонстрацию технологии привязки информационных полей, в качестве примера для которой используется XAML-подобная разметка для определения объектов управления, однако это не означает исключение взаимной заменяемости
Но и не гарантирует наличие заменяемости.
JustUserR пишет:
поскольку данное свойство было внедрено в предшествующих технологиях элементов управления
Ни разу не отрицаю, но из приведённой статьи это не следуют.
Учитывая эти два обстоятельства и уровень вопроса заданного автором, могу сказать что статья ему никак не поможет.
EuGen, так он что, всегда так? А если с ним долго переписываться кто из нас сменит манеру письма?
EuGen
Отправлено: 02 Ноября, 2011 - 15:53:55
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Самогонщик
и не пытайтесь. Скорее Вы смените. Это, правда, не по теме.
По теме - проще выразить это двумя строками.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
JustUserR
Отправлено: 02 Ноября, 2011 - 18:28:07
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Самогонщик пишет:
Учитывая эти два обстоятельства и уровень вопроса заданного автором, могу сказать что статья ему никак не поможет.
Использование указанной статьи для осуществления решения поставленной задачи в первичной формулировке, включающей в себя обеспечение включения автоматизированной зависимости между информационным полем в первичном уровне элементного трактования, а также целевого параметра визуализационного объекта, в действительности не позволяет достичь требуемого результата в явном виде, однако обеспечивает *указание* на группу технологий, которая позволяет осуществить решение поставленной задачи; в данной сентенции импликационная зависимость устанавливается исключительно на основании того факта, что указанная статья содержит указание на целевые технологии, использование которых является полезным для достижения оригинальной цели
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.