Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 2
            [id] => 377473
            [titulo] => Verificar se um form já esta aberto em C#
            [dataCadastro] => DateTime Object
                (
                    [date] => 2010-05-12 17:23:48
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 222410
            [status] => A
            [isExample] => 
            [NomeUsuario] => Marcelo Mendes
            [Login] => marcelofox
            [Apelido] => Marcelo Mendes
            [Foto] => marcelo_pequena-2.jpg
            [Conteudo] => Opa!
Estou te passando um método legal para abrir forms com esse comportamento que  você quer.


public static void OpenForm(Type frmType)
        {
            bool bolCtl = false;
            foreach (Form form in Application.OpenForms)
            {
                if (form.GetType().Equals(frmType))
                {
                    form.Show();
                    bolCtl = true;
                    break;
                }
            }

            if (!bolCtl)
            {
                Form frm = (Form)Activator.CreateInstance(frmType);
                frm.Show();
            }
        }

Ai basta passa o tipo do form que você quer abrir , exemplo:

CUtil.OpenForm(typeof(frmCadAluno));

[]s
) )

Verificar se um form já esta aberto em C#

Geraldo Junio
   - 12 mai 2010

Bom dia!

Estou criando uma aplição em C# utilizando o VS 2008.
Criei uma tela de menu que chama um cadastro de cliente. Quando clico no meu cliente gostaria de saber como faço para verificar se o cadastro de cliente esta aberto e se tiver, apenas vizualiso o cadastro novamente e não crio outro.

Post mais votado

Marcelo Mendes
   - 12 mai 2010

Opa!
Estou te passando um método legal para abrir forms com esse comportamento que  você quer.


public static void OpenForm(Type frmType)
        {
            bool bolCtl = false;
            foreach (Form form in Application.OpenForms)
            {
                if (form.GetType().Equals(frmType))
                {
                    form.Show();
                    bolCtl = true;
                    break;
                }
            }

            if (!bolCtl)
            {
                Form frm = (Form)Activator.CreateInstance(frmType);
                frm.Show();
            }
        }

Ai basta passa o tipo do form que você quer abrir , exemplo:

CUtil.OpenForm(typeof(frmCadAluno));

[]s

2
|
0

Geraldo Junio
   - 13 mai 2010

Marcelo, muito obrigado pela dica, poré, como faço para mostra o form novamente se ele ja estiver aberto?  

0
|
0

Marcelo Mendes
   - 13 mai 2010

Cara este código acima já faz isso, se o form já estiver aberto ele apenas da um Show() nele.
Caso contrário ele cria uma nova instancia desse form, e dá um Show() posteriormente.

[]s

0
|
0

Marcelo Mendes
   - 13 mai 2010

Complementando, este método já funciona quando você já está utilizando Forms com MdiParent e MdiChildrens.

[]s

0
|
0