![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
PaZ1T1V |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 26.2.2008 Где: Багдад ) Репутация: нет Всего: нет |
Здравствуйте, это опять я. У меня такая зада4а стоит есть два класса форм: Form1 и Form2 соответственно (классы независимы)
public partial class Form1 : Form public partial class Form2 : Form на форм1 есть кнопка, по нажатию на которую вылазит форм2(реалезовано) на форм2 есть textBox, в который загоняется слово(реализовано) и ето слово добавляется на форм1 (ну еесесна после нажатия кнопки на форм2) в Листбокс(как ето сделать) помогите плз ![]() ЗЫ заранее спасибо)
и
Это сообщение отредактировал(а) PaZ1T1V - 29.2.2008, 15:58 --------------------
[size=8]Atention please!!![/size] [size=6]Кривые руки[/size] |
||||
|
|||||
Sherlock |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
А после какого события в form2 эта строка попадает в листбокс form1? После того как какую-нибудь кнопку нажал типа "я всё ввёл"? Или после того как закончил вводить в текстбокс?
|
|||
|
||||
Sherlock |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
Всё я понял. Короче так:
1) Либо делаешь текстбокс во второй форме public, либо заводишь открытое свойство в form2, в которое по нажатию кнопки заносится значение текстбокса. 2) Пишешь такую строчку в form2.Designer.cs для кнопки button1 this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; 3) В обработчике нажатия на кнопку в form1 после frm2.Show() пишешь if (frm2.DialogResult == DialogResult.OK) { ..... Listbox1.Items.Add(frm2.textbox1.Text) // если public textbox Listbox1.Items.Add(frm2.<Имя открытого свойства>) // если завёл свойство } |
|||
|
||||
vponomarov |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 4 Всего: 12 |
ну если судить по уже написаному коду, то нужно сделать так:
1. или объявить form1.ListBox1 как public 2. или добавить в form1 public метод
и обработчик клика на кнопку будет иметь вид
хотя лично я обычно делаю как описал Sherlock. |
||||
|
|||||
tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
С моей точки зрения нужно реализовывать взаимодействие форм через события. Это наиболее универсальный способ.
Форма1 заинтересована в каком-то событии, происходящем с Формой2. Форма2 объявляет это событие (с именем "НужноеТебеСловоНаконецтоВведеноВМойТексБокс" например), а Форма1 подписывается на это событие своим методом-обработчиком. Дополнительная информация, необходимая Форме1 от Формы2 (при наступлении этого события) передается как аргументы EventHandler-a Т.о. сохраняется полная инкапсуляция данных и минимизируются связи между объектами. Вот наглядный пример
Хотя здесь можно и не делать своего события, а просто textBox1.KeyDown += form2.Receive; но это в примере, а вообще... при наступлении нестандартных событий нужно и взаимодействовать через события Это сообщение отредактировал(а) tol05 - 29.2.2008, 13:25 -------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
PaZ1T1V |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 26.2.2008 Где: Багдад ) Репутация: нет Всего: нет |
Не работает (
Это сообщение отредактировал(а) PaZ1T1V - 29.2.2008, 15:16 --------------------
[size=8]Atention please!!![/size] [size=6]Кривые руки[/size] |
|||
|
||||
PaZ1T1V |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 26.2.2008 Где: Багдад ) Репутация: нет Всего: нет |
а не факт 4то вот ето работать будет(немного разобрался) создается во второй форме глобальный объект типа форм1 но ето создается не ссылка на существующую форму а новая форма типа форм1 выходит ето все отпадает ЗЫ вопрос не закрыт помогите ламеру плз как сделать ) --------------------
[size=8]Atention please!!![/size] [size=6]Кривые руки[/size] |
||||||
|
|||||||
Cold_Almaty |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 22.1.2008 Репутация: нет Всего: нет |
Это нарушение инкапсуляции. Не надо так делать. Я решил аналогичную задачу, сделав FORM2 диалоговым окном. И добавил на ней свойства, которые и добавляют содержимое текстбокса из формы2 в форму1. Посмотри здесь. Последний пример вполне рабочий. |
|||
|
||||
vponomarov |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 4 Всего: 12 |
согласен, но приемлемое решение уже было предложено Sherlock и оно почему-то не помогло автору. вот я и предложил альтернативы.
все правильно, просто вы в своем коде в первом посте так написали
вот я и не стал разбираться как там у вас все организовано ![]() |
||||||
|
|||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |