none
SOMA ENTRE FORM RRS feed

  • Pergunta

  • Soma entre form
    To com uma duvida tremenda já to a dias atrás de solução e não acho! 
    Tenho um projeto em c# que tem 3 form
    no form1 tem um textbox1 no form2 tem um textbox2 no form3 tem um textbox3 e um button1...
    Ate ai tudo bem

    gostaria de quando eu aperta-se o button1 somar o textbox1 mais o textbox2 e o resultado sair no textbox3 
    fico muito agradecido der de ja...

    Aguardo... 
    quinta-feira, 31 de outubro de 2013 12:53

Respostas

  • Caso os forms, recebam o valor, e sejam escondidos, basta encapsular  os valores do txtbox.

    Form1

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            public static double valor1 { get; set; }
            public static double valor2 { get; set; }
    
            private void button1_Click(object sender, EventArgs e)
            {
                valor1 = Convert.ToDouble(textBox1.Text);
                Form2 novo = new Form2();
                novo.Show();
                this.Hide();
            }
          
        }
    }
    

    Form2

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form1.valor2 = Convert.ToDouble(textBox1.Text);
                Form3 novo = new Form3();
                novo.Show();
                this.Hide();
            }
        }
    }
    

    Form3

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form3 : Form
        {
            public Form3()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                textBox1.Text = Convert.ToString(Form1.valor1 + Form1.valor2);
            }
        }
    }

    Claro que dessa forma pode haver problemas com o programa, já que o usuário ira digitar os valores, faça com que o programa só aceite números.

    • Sugerido como Resposta Matheus2984 terça-feira, 5 de novembro de 2013 22:35
    • Marcado como Resposta Giovani Cr segunda-feira, 11 de novembro de 2013 14:35
    terça-feira, 5 de novembro de 2013 22:32

Todas as Respostas

  • Se tiver instânciados ou seja, tiverem aberto é simples fazer isso!!!

    Eu já até postei aqui isso!

    protected void Somar_Valores()
    {
    	Form Form1 = null;
    	Form Form2 = null;
    	Form Form3 = null;
    	if (Application.OpenForms["Form1"] != null)
    	{
    		Form1 = Application.OpenForms["Form1"];
    	}
    	if (Application.OpenForms["Form2"] != null)
    	{
    		Form2 = Application.OpenForms["Form2"];
    	}
    	if (Application.OpenForms["Form3"] != null)
    	{
    		Form3 = Application.OpenForms["Form3"];
    	}
    	if (Form1 != null && Form2 != null && Form3 != null) // todos estão abertos e instânciados
    	{
    		TextBox TextBox1 = Form1.Controls["TextBox1"] as TextBox;
    		TextBox TextBox2 = Form1.Controls["TextBox2"] as TextBox;
    		TextBox TextBox3 = Form1.Controls["TextBox3"] as TextBox;
    	}
    	else
    	{
    		MessageBox.Show("Forms não instânciados, não recupera valores");
    	}
    }


    Fúlvio Cezar Canducci Dias

    quinta-feira, 31 de outubro de 2013 13:49
  • fiz o que vc mandou, nao sei se esta coreto so que quando quando chamo o Somar_Valores() no botão do form 3 nao aparese nada quando eu apero no botão segui  meu projeto...

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

    namespace Novo1
    {
        public partial class Form3 : Form
        {
            protected void Somar_Valores()
            {
                Form Form1 = null;
                Form Form2 = null;
                Form Form3 = null;
                if (Application.OpenForms["Form1"] != null)
                {
                    Form1 = Application.OpenForms["Form1"];
                }
                if (Application.OpenForms["Form2"] != null)
                {
                    Form2 = Application.OpenForms["Form2"];
                }
                if (Application.OpenForms["Form3"] != null)
                {
                    Form3 = Application.OpenForms["Form3"];
                }
                if (Form1 != null && Form2 != null && Form3 != null) // todos estão abertos e instânciados
                {
                    TextBox TextBox1 = Form1.Controls["TextBox1"] as TextBox;
                    TextBox TextBox2 = Form1.Controls["TextBox2"] as TextBox;
                    TextBox TextBox3 = Form1.Controls["TextBox3"] as TextBox;
                }
                else
                {
                    MessageBox.Show("Forms não instânciados, não recupera valores");
                }
            }
            public Form3()
            {
                InitializeComponent();
            }

            private void Form3_Load(object sender, EventArgs e)
            {

            }

            private void button1_Click(object sender, EventArgs e)
            {
                Somar_Valores();

    ------------------------------------------------------------------------

    quinta-feira, 31 de outubro de 2013 14:22
  • Então o que eu fiz ta certo!

    Mas eu não sei como ta o seu projeto! inclusive se deveria ter visto se os nomes corresponde ao seu projeto

    exemplo é Form1 ou form1 ( lembra é case sensitive, diferencia maiúsculo de minusculo).

    Coloque o break point e teste por favor!!!


    Fúlvio Cezar Canducci Dias

    quinta-feira, 31 de outubro de 2013 14:25
  • mais nao ta dando erro pra que tenho q bota Break poit?

    O projeto esta sem nem um erro o Nome dos Form estão todos corretamentos...

    so mim responde uma coisa esse comando eu tenho que bota ele em todos os FORM?

    e em qual parte do comando q vc mim mandou esta somando os textbox? 

    quinta-feira, 31 de outubro de 2013 14:43
  • Break Point não é só para erros é para saber também os desvios dos programas!

    Gostaria de saber se esses 3 Forms estão executando ao mesmo tempo! tipo num MDI!

    e a soma eu não fiz mas, deixe mamão com açucar para você fazer nessa parte!

    if (Form1 != null && Form2 != null && Form3 != null) // todos estão abertos e instânciados
    {
    	TextBox TextBox1 = Form1.Controls["TextBox1"] as TextBox;
    	TextBox TextBox2 = Form1.Controls["TextBox2"] as TextBox;
    	TextBox TextBox3 = Form1.Controls["TextBox3"] as TextBox;
    	//Aqui se pega os 3 TextBox e faça a soma para dentro de uma variavel !!!
    	//OK
    }
    Qualquer dúvida!!!


    Fúlvio Cezar Canducci Dias

    quinta-feira, 31 de outubro de 2013 18:19
  • amigo ocorreu esse erro... ao somar os textbox se pude-se fazer o projeto e mim manda eu ficava muito agradecido por ter mim ajudado!!!!

    • Sugerido como Resposta Rhael Andrade segunda-feira, 4 de novembro de 2013 14:03
    • Não Sugerido como Resposta Rhael Andrade segunda-feira, 4 de novembro de 2013 14:03
    segunda-feira, 4 de novembro de 2013 13:59
  • Caso os forms, recebam o valor, e sejam escondidos, basta encapsular  os valores do txtbox.

    Form1

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            public static double valor1 { get; set; }
            public static double valor2 { get; set; }
    
            private void button1_Click(object sender, EventArgs e)
            {
                valor1 = Convert.ToDouble(textBox1.Text);
                Form2 novo = new Form2();
                novo.Show();
                this.Hide();
            }
          
        }
    }
    

    Form2

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form1.valor2 = Convert.ToDouble(textBox1.Text);
                Form3 novo = new Form3();
                novo.Show();
                this.Hide();
            }
        }
    }
    

    Form3

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form3 : Form
        {
            public Form3()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                textBox1.Text = Convert.ToString(Form1.valor1 + Form1.valor2);
            }
        }
    }

    Claro que dessa forma pode haver problemas com o programa, já que o usuário ira digitar os valores, faça com que o programa só aceite números.

    • Sugerido como Resposta Matheus2984 terça-feira, 5 de novembro de 2013 22:35
    • Marcado como Resposta Giovani Cr segunda-feira, 11 de novembro de 2013 14:35
    terça-feira, 5 de novembro de 2013 22:32