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

Ваш аккаунт

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

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

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

Как привязать данные из Form1 in Form2?

61K
12 июня 2015 года
Максим Тесля
13 / / 10.12.2014
Доброго времени суток .У меня есть очень большая проблема в передаче данных между формами.
Есть 4 формы.
Форма1 - является родительской для всех остальных форм, из неё и происходит вызов остальных.
Форма 2 и 3 - реализуют роботу со строками.
Форма 4 - есть сборщиком результатов с Формы1 и Формы2.
Теперь к делу
У формах 2 та 3 есть конечные текстбоксы в которых написан текст,а у форме 4 есть текстбокс в который нужно записать эти текстбоксы из форм 2 и 3 причем так что бы Форма4 не открывалась много раз.
Вот часть которая отвечает за связь между формами.
 
Код:
Form4 ch = new Form4();
            ch.textBox1.Text = textBox2.Text;
            ch.ShowDialog();
Этот код у меня написан в 2 и 3 формах.И вот проблема ,когда я запускаю вторую форму у меня типа все работает.НО! Когда я паралельно запускаю 3 форму,что бы дописать к тексу что скопировался из Формы2 в Форму4, то у меня открывается еще одна Форма4 только из скопированым текстом из Формы 3.
И так вопрос! Как сделать так что бы Форма 4 открылась после запуска Формы2 один раз и потом после запуска Формы 3 в неё дописывался текст.
Прошу срочной помощи о великие программисты) Выручайте не опытного студента.
96K
13 июня 2015 года
3JIoi_Hy6
1 / / 13.06.2015
Я бы сделал как-то так:
Код:
class Form1{
    Form2 f2;
    Form3 f3;
    Form4 f4;
   
    public Form1(){
        f4 = new Form4();
        f2 = new Form2(this.f4);
        f3 = new Form3(this.f4);
    }
    //...
}

class Form2{
    Form4 f4;
    public Form2(Form4 form){
        this.f4 = form;
    }
   
    private void SetForm4(){
        this.f4.textBox2.Text = this.textBox2.Text;
        if(!this.f4.Visible)
            this.f4.ShowDialog();
       
    }
   
    //....
}

class Form3{
    Form4 f4;
    public Form3(Form4 form){
        this.f4 = form;
    }
   
    private void SetForm4(){
        this.f4.textBox1.Text = this.textBox1.Text;
        if(!this.f4.Visible)
            this.f4.ShowDialog();
       
    }
    //....
}

class Form4{
    bool visible = false;
   
    public bool Visible{ get{ return this.visible; } set{ this.visible = value; }}
   
    private void Form4_Closing(object sender, EventArgs e){
        e.Cancel = true;
        this.visible = false;
        this.Hide();
    }
   
    private void Form4_Load(...){
        this.visible = true;
    }
    //....
}
Здесь Form4_Closing и Form4_Load -- должны быть прописаны в свойствах Form Closing и Form Load соответственно (http://prntscr.com/7gev8q)
Код не проверял, но основная мысль примерно такая.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог