none
trazendo um formulário para frente RRS feed

  • Pergunta

  • Gostaria de saber como faço para verificar se um formulario já está em segundo plano se estiver trazer para frente se não criar, utilizando o bringToFront() eu consigo trazer o formulário para frente mas não sei como verificar se já existe o formulario. Agradeço a atenção de todos.
    sexta-feira, 19 de fevereiro de 2010 11:13

Respostas


  • Caro SON1442, isso ocorre porque quando fechou o formulário ainda existe uma variável referenciando o mesmo, sendo assim precisamos "limpar" a variável para que o código funcione adequadamente, você pode resolver essa questão usando o exemplo abaixo:

    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 Teste47
    {
    	public partial class Form1 : Form
    	{
    		public Form1()
    		{
    			InitializeComponent();
    		}
    
    		Form2 form2;
    
    		private void button1_Click(object sender, EventArgs e)
    		{
    			if (form2 == null)
    			{
    				form2 = new Form2();
    				form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
    				form2.Show();
    			}
    			else
    			{
    				form2.BringToFront();
    			}
    		}
    
    		private void form2_FormClosed(object sender, FormClosedEventArgs e)
    		{
    			form2 = null;
    		}
    	}
    }

    Atenciosamente

    Carlos Adriano Portes

    Carlos Adriano Portes - Ajude a tornar o fórum mais organizado, se foi últil marque como resposta.
    • Sugerido como Resposta Danimar Ribeiro quarta-feira, 24 de fevereiro de 2010 11:56
    • Marcado como Resposta SON1442 quarta-feira, 24 de fevereiro de 2010 12:45
    terça-feira, 23 de fevereiro de 2010 23:08

Todas as Respostas

  • Olá SON1442,

    Você poderia resolver seu problema usando algo como no exemplo abaixo:

    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 Teste10
    {
    	public partial class Form1 : Form
    	{
    		public Form1()
    		{
    			InitializeComponent();
    		}
    
    		Form2 form2;
    
    		private void button1_Click(object sender, EventArgs e)
    		{
    			if (form2 == null)
    			{
    				form2 = new Form2();
    				form2.Show();
    			}
    			else
    			{
    				form2.BringToFront();
    			}
    		}
    	}
    }

    Atenciosamente

    Carlos Adriano Portes - Ajude a tornar o fórum mais organizado, se foi últil marque como resposta.
    sexta-feira, 19 de fevereiro de 2010 19:56
  • Carlos,


            Primeiro eu agradeço pela ajuda, foi de muita valia. Deu certinho enquanto o formulario está aberto, mas quando eu fecho o formulario e tendo abrir ele novamente não dá certo ele não abre. O que pode ser? Valeu mesmo, pela ajuda.



                                                     JESUS É O SENHOR!!!!
    terça-feira, 23 de fevereiro de 2010 18:34

  • Caro SON1442, isso ocorre porque quando fechou o formulário ainda existe uma variável referenciando o mesmo, sendo assim precisamos "limpar" a variável para que o código funcione adequadamente, você pode resolver essa questão usando o exemplo abaixo:

    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 Teste47
    {
    	public partial class Form1 : Form
    	{
    		public Form1()
    		{
    			InitializeComponent();
    		}
    
    		Form2 form2;
    
    		private void button1_Click(object sender, EventArgs e)
    		{
    			if (form2 == null)
    			{
    				form2 = new Form2();
    				form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
    				form2.Show();
    			}
    			else
    			{
    				form2.BringToFront();
    			}
    		}
    
    		private void form2_FormClosed(object sender, FormClosedEventArgs e)
    		{
    			form2 = null;
    		}
    	}
    }

    Atenciosamente

    Carlos Adriano Portes

    Carlos Adriano Portes - Ajude a tornar o fórum mais organizado, se foi últil marque como resposta.
    • Sugerido como Resposta Danimar Ribeiro quarta-feira, 24 de fevereiro de 2010 11:56
    • Marcado como Resposta SON1442 quarta-feira, 24 de fevereiro de 2010 12:45
    terça-feira, 23 de fevereiro de 2010 23:08