![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
reg24r |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Понять что в этом топике описано и повторить что здесь написано может только тот кто знает и без того как это все делать.
Прочитал топик уже раз 50 в поисках истины. Попробовал что-то повторить. Увы... Уважаемые программисты ! Может кто-нибудь показать на примере как при закрытии кнопкой второй формы передать значение label.Text формы2 в label.Text формы1 Извиняюсь за тупость. (не отсылайте к теории и книгам, там о таком к сожалению ничего не написано, по крайней мере для тупых) |
|||
|
||||
ivashkanet |
|
||||||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
reg24r, в твоем случае есть два варианта:
1) Показать вторую форму с помощью ShowDialog(), тогда первая форма будет ждать пока закроется вторая, а потом нужные данные "слизать" с закрытого, но еще живого экземпляра второй формы.
2) Либо
P.S. Модераторы: предлагаю очистить эту тему от всего ненужного мусора ![]() P.P.S. Весь код был написан тут же, так что его скорее всего придеться "доработать напильником" на предмет синтаксических ошибок |
||||||
|
|||||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
ivashkanet, "мусор" останется, мало ли он кому понадобится
![]() -------------------- ![]() |
|||
|
||||
reg24r |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Оба примера слава богу работают.
Огромное спасибо за помощь. Преодолена еще одна ступень в ООП. Вопрос по этому коду
Чем отличается Form1 parentForm; от Form1 parentForm = new Form1(); Это сообщение отредактировал(а) reg24r - 10.9.2006, 16:48 |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
Первый вариант - ты объявляешь переменную. Второй - ты её объявляешь и сразу создаёшь экземпляр, с которым можно работать. В первом варианте в переменной будет хранится null, а во втором - экземпляр класса Form1.
|
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
Добавлю еще, что Form1 parentForm = new Form1(); создает совершенно новый экземпляр класса Form1 (читать выше про чертежи и здания). И это будет совсем другая новая форма (брат-близнец главной формы).
Поэтому приходиться передавать ссылку на форму явно Form2 f2 = new Form2(this) |
|||
|
||||
Lеstat |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 28.12.2005 Где: Москва Репутация: нет Всего: нет |
Можно тоже вопросик на эту тему...
прочитал и тему, и форум полистал не нашел ответа У меня есть главная форма Form1 и еще один класс в отдельном файле в классе Form1 пишу такую штуку
эта функция вызывается после нескольких других функций, в которых я подключался к БД, настраивал ее и тд эту функцию мне необходимо выззвать из другого класса... когда я пишу в другом классе
и у меня получается бред... мне нужно чтобы функция выполнилась так, как-будто я ее в самом же Form1 и вызвал! раньше я выкручивался через
![]() Хочу вот узнать как умные люди пишут такие процедуры... Это сообщение отредактировал(а) Lеstat - 16.9.2006, 18:06 |
||||||
|
|||||||
ivashkanet |
|
||||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
Lеstat, надобыло внимательнее читать топик
![]() В твоем случае подходит пункт 2 (передача ссылки через конструктор)
Интересно почему так не покатило? Если ты хочешь из Form2 вызвать метод InstallintoDB первой формы, то пишешь
|
||||
|
|||||
vitovt |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 3.10.2006 Репутация: нет Всего: нет |
Немного вернусь к первонанальной теме. На форуме были только советы, как обратиться к форме-родителю (поправьте, если что-то пропустил). А что, если в проекте форм эдак 10-15 ? Я предлагаю следующий метод, который, возможно, будет легко понять:
Итак, сначала сделаем static класс, в котором будем хранить список всех форм проекта. Примерно так:
Обратите внимание, что мы просто объявляем объекты, не выделяя память, т.е. по сути мы объявляем указатели на формы, которые в момент запуска равны null Сейчас внесём небольшие изменения в конструкторы каждой из форм, и вместо
напишем
И так для каждой. Иными словами, после создания формы мы из любой другой можем к ней обратиться: ApplicationFormList .AdminForm.Show(); Можно немного улучшить и проверять, создана ли форма, если вы не делаете этого при старте приложения:
Как видим, обращение к формам стало очень похоже на Delphi, только перед именем формы пишем имя того static - класса, в котором у нас храниться список форм. За сим дозвольте откланяться P.S. Буду только рад замечаниям. Это сообщение отредактировал(а) vitovt - 3.10.2006, 22:42 |
||||||||
|
|||||||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
А их вроде как и нету ![]() ![]() либо А это лучше всего обернуть в пропертю:
|
|||
|
||||
lioness |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 27.7.2006 Репутация: нет Всего: нет |
А если объект наследуется (у меня ArrayList, например), то у меня не получается так лихо напрямую к нему обратиться:
Т.е. у объекта формы должен стоять public? А protected - не пойдет? |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
protected пойдёт, если обращаемся к полю из наследника -------------------- ![]() |
|||
|
||||
xsb3 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Люди а http://xsb3.ifolder.ru/544137 данный проект переделать можете и выложить переделанный чтоб все на практике видели как что к чему.
|
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
чтоб все на практике видели как что к чему. Чтобы ты его забрал результат, а больше ведь тебе ничего не надо ![]() Примеров, некоторые очень даже хороши, здесь было достаточно ![]() |
|||
|
||||
VisualProgrammerNET |
|
||||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 1 Всего: 6 |
Достало просто уже писать диздок... Решил хоть чё-нить спрограммить.
xsb3, вот те коды обеих форм. Форма 1:
Форма 2:
Да, и обработчик не забудь убрать с listView1_SelectedIndexChanged Это сообщение отредактировал(а) VisualProgrammerNET - 6.12.2006, 20:24 -------------------- 3 ГОДА НА ![]() |
||||
|
|||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |