Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обмен данными между формами

34K
18 апреля 2012 года
zna926
64 / / 23.03.2012
Здравствуйте,CorsaiR! Передача из Ф1 в Ф2
Форма 1
В разделе public
Form F2=new Form2();
Код под Button
String st1;
s1=textBox1.text.ToString();
F2.Show();
F2.Text=st1; Это все
Форма 2 Код под Button
textBox1.Text=Text; ВСе работает
Обратная передача из Ф2 в Ф1 такая же, но добаляется строка
Form1 F1=new Form1();
Эту строку компиллятор в разделе public не пропускает и ее записываю под кнопкой
String st1;
s1=textBox1.text.ToString();
Form1 F1=new Form1();
F1.Show();
F1.Text=st1;
Все работает, но после каждого обмена даннми появляется новая Ф1.
Попытки ее ликвидировать приводят к остановке программы.
В этом проблема.
Кроме того, желательно, чтобы данные из Ф1 вводились прямо в textBox Ф2
С наилучшими пожеланияи
72K
18 апреля 2012 года
CorsaiR
59 / / 07.03.2012
Цитата:
Все работает, но после каждого обмена даннми появляется новая Ф1


Правильно, она появляется т.к. по кнопке создается новая форма
Form1 F1=new Form1();

В данном случае нужно поступить по-другому.
В-первых, когда должна появлятся вторая форма? создавать ее в public не самый лучший вариант. Допустим, вторая форма должна появляться при нажатии на кнопку на первой форме. Тогда по кнопке пишешь

 
Код:
Form2 f = new Form2();
f.Owner = this;
f.textBox1.text = this.textBox1.text;
f.Show();
Здесь, при создании второй формы устанавливается владелец.

Во втрой форме по кнопке пишешь:

 
Код:
Form1 main = this.Owner as Form1;
main.textBox1.text = this.textBox1.text;
P.S. не плодите, пожалуйста, темы - отвечайте в текущей
34K
18 апреля 2012 года
zna926
64 / / 23.03.2012
Здравствуйте,CorsaiR! К сожалению...
Форма 1 По кнопке f.textBox1.text = this.textBox1.text;
Компиллятор не пропускает, т.к. после f. в списке есть только Text
Форма 2 тоже только main.Text=...
72K
19 апреля 2012 года
CorsaiR
59 / / 07.03.2012
Ах, да. У текстовых полей в свойствах нужно установить модификатор доступа Public:
82K
19 апреля 2012 года
FrostXXX
1 / / 19.04.2012
Когда обращаешься из формы 2 в форму 1 new не нужен. Переменные в первой форме должны иметь public static, и тогда можно на прямую из формы 2 обращаться, типа Форма1.переменная = переменная (Формы 2). Если нужно чтобы первая форма ждала ответа от второй то у меня работает так.

Lupa frmLupa = new Lupa(); //Создаем форму

frmLupa.SKalibrovkoi = SKalibrovkoi; // присваиваем переменную формы 1 форме 2

if (frmLupa.ShowDialog(this) == DialogResult.OK) // когда закрывается форма 2 со свойством DialogResult == OK то забирается информация
{
SKalibrovkoi = frmLupa.SKalibrovkoi;
}
(Переменные формы 2 public)
34K
19 апреля 2012 года
zna926
64 / / 23.03.2012
Здравствуйте,CorsaiR! Все сделал, в
main.textBox1.text = this.textBox1.text; добавил ToString(), но теперь
при нажатии этой кнопки программа вообще отключается.
У мемя просьба-проверьте работу программы, может у меня что-то с компиллятором или ...
72K
19 апреля 2012 года
CorsaiR
59 / / 07.03.2012
Все работает
Прикрепленные файлы:
41 Кб
Загрузок: 387
34K
19 апреля 2012 года
zna926
64 / / 23.03.2012
Здравствуйте,CorsaiR! Допустил ошибку, все получилось СПАСИБО
В заключение: подскажите подходящую книгу по C#.Я новичок в C#, всего около 2 месяцев.
А вообще много лет работал на Visual C++6, Delphi6.
Еще раз благодарю.
72K
19 апреля 2012 года
CorsaiR
59 / / 07.03.2012
Сам такой же.
Смотри книги Чарльза Петцольда и Троелсена

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог