Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > как обрититься в форму в первичную


Автор: ProgrammingLife 7.4.2008, 21:47
Да виноват что задаю этот вопрос не первый раз смотрел я по ссылки http://forum.vingrad.ru/topic-194921.html непомогает smile  smile 
форма1 -вот код:
Код

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Proba1Form1_Form2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Show();
        }
    }
}


форма2 вот код
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Proba1Form1_Form2
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double t1 = Convert.ToDouble(textBox1.Text);
            double t2 = Convert.ToDouble(textBox2.Text);
            double result = t1 + t2;
            label1.Text = Convert.ToString(result);
            //как передать файлы  label1.Text в превую форму????
            Form1 f1 = new Form1();
f1.label2.Text=Convert.ToString(result);
            f1.Show();
            
        } 

    }
}

проблема в чем то вылезает вторичное окно Формы1
кто может реально помочь  smile ??????????

Автор: jonie 8.4.2008, 00:54
смысл в том что ты делаешь новый объект класса Form1 :  Form1 f1 = new Form1();
тебе же надо передать ссылку в объект типа Form2, который создается в объекте типа Form1
делай так:
Код

/* в форме 1 */
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(this); // <---- !!! передаем ссылку на объект типа Form1 в объект класса Form2
            f2.Show();
        }

/*в форме2*/
        private Form1 parentFrm = null;

        private Form2()
        {
            InitializeComponent();
        }
     
        public Form2(Form2 parent) : this()         // <!--- вызываем что было (приватный конструктор)
       {
          this.parentFrm = parent;
       }
       
       private void button1_Click(object sender, EventArgs e)
      {
         MessageBox.Show(parentFrm.textBox2.Text);        //<-- не забыть выставить видимость члена textBox2 в классе parentFrm в public
      }


конечно, возможно в Form2 написать акксессор (хз как его в .net звать) : т.е. property string TextBox2Text {get {return this.textbox2.text;}}
и использовать его в Form2 .... или нарисовать делегатов и тоже самое... но в общем это выглядит так как я указал выше..

Автор: mr.DUDA 8.4.2008, 10:33
Это просто эпидемия какая-то, уже в сотый раз повторяют одну и ту же общую ошибку...   smile 

Пора принять административные меры !!!  smile 

Уважаемые начинающие программисты !!!!!!!

Модератор: НЕ СОЗДАВАЙТЕ НОВУЮ ФОРМУ ОПЕРАТОРОМ new ЧТОБЫ ПРОСТО ОБРАТИТЬСЯ К КОНТРОЛАМ В ДРУГОЙ ФОРМЕ !!!

 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)