| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > контрол из одной формы в другую 2 |
| Автор: Cold_Almaty 26.2.2008, 13:32 | ||||
| Доброго времени суток. Почитал вот этот топик http://forum.vingrad.ru/topic-106938.html Понравилось мне вот такое решение предложенное Exception :
Сделал. И ничего. Т.е. текст из Form2.txtBox2.Text не добавляется в Form1.txtBox1.Text. Проверил с помощью MessageBox - значение передаётся.
В первом топике было вот такое мнение "потому как ты содёшь новый объект form1, а не обращаешься к уже созданному. " Видимо и сейчас эта проблема имеет место. Подскажите пожалуйста, как победить? |
| Автор: marcusmae 26.2.2008, 14:02 | ||||||
Стоп-стоп-стоп, Cold_Almaty, не так быстро с выводами. Если нужно запутаться, то свойства Вам помогут
Теперь, чтобы передать текст из текстбокса form1 в текстбокс form2 :
обратно :
Что не так? |
| Автор: Cold_Almaty 26.2.2008, 14:48 | ||||
| marcusmae. Больше запутался. Если не трудно, поясни пожалуйста на моём примере. Первая форма (на ней имеется текстбокс txtBox1):
Вторая форма(на ней имеется текстбокс txtBox2):
|
| Автор: marcusmae 26.2.2008, 15:02 |
| Cold_Almaty, во-первых, это не будет компилироваться, так как неизвестно, что такое frmInpt. Во-вторых, при клике по кнопке каждой формы, Вы создаёте новые формы, когда как видимо надо один раз создать, а потом обращаться к уже созданным. Правильно? |
| Автор: Cold_Almaty 27.2.2008, 06:44 | ||||||||
| Прошу прощения за "frmInpt". Просто не заменил на "Form2". Уже отредактировал то сообщение. Подогнал свой код под Ваш шаблон. Вот что получилось: Форма1
Форма2:
При вызове второй формы по клику мыши из первой формы
генерируется ошибка "No overload for method 'Form2' takes '0' arguments" ошибка генерируется из-за вот этого:
|
| Автор: KelTron 27.2.2008, 08:51 | ||||
Это потому, что у тебя в классе Form2 нет конструктора по умолчанию, ты должен создавать форму 2 либо как здесь делаешь:
то есть
либо добавить в определение класса Form2 конструктор по умолчанию |
| Автор: Cold_Almaty 27.2.2008, 10:45 | ||||||||||
| Что-то не получается. Сделал так: Форма2:
и получается что-то странное. При вызове Формы2 из Формы1 появляется Форма1 имеющая размеры Формы2 с накладывающимися друг на друга объектами. Это как я понял из-за этого Форма2
Изменяю Form1 на Form, перестаёт работать вот этот кусок
Если вместо этих двух строчек пишу так
всё открывается, но ничего не происходит. И, видимо из-за того, что Форма1 перегружается
Как быть? |
| Автор: KelTron 28.2.2008, 05:41 | ||||||||||
1) В классе Form1:
2) В классе Form2:
Когда у тебя открыта форма2 зачем тебе снова создавать 2 формы: форму1 и форму2, они же уже созданы, тебе нужно при нажатии кнопки только передать значения, так что 2 строчки(3 и 4) просто убрать. Следующие 2 строки(6 и 7) заменить на:
3) В классе Form2: Это че за метод:
Полагаю ты хотел сделать конструктор по умолчанию, но он не так определяется, а так:
Имя конструктора совпадает с именем класса. В данном случае конструктор по умолчанию не нужен, удали этот метод. |
| Автор: Cold_Almaty 28.2.2008, 08:56 |
| Огромное спасибо. Заработало. Я ещё сделал через DialogResult. Тоже ничего способ. Очень простой. Но способ предложенный KelTronом мне больше подходит. Ещё раз спасибо всем откликнувшемся. |