none
form filho aberto RRS feed

  • Pergunta

  •  

    tenho um form pai e necessito saber se um form filho já esta aberto, gostaria se possivel que  fossem o mais didatico possivel, pois estou entrando em vb.2005 agora, desde já agradeço
    quinta-feira, 12 de junho de 2008 11:49

Respostas

  • Olá Wagner ,

     

    O correspondente em VB.NET

     

    Code Snippet

    Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs)

        'Verifica se existe algum form filho

        If Me.MdiChildren.Length = 0 Then

            'Se não existe nenhum form filho não precisa fazer verificação

            Dim formFilho As New Form()

            formFilho.MdiParent = Me

            formFilho.Name = "formFilho1"

            formFilho.Show()

        Else

            'Se existe form filho faz verificação

            For Each filhos As Form In Me.MdiChildren

                If filhos.Name = "formFilho1" Then

                    MessageBox.Show("O form já esta aberto")

                Else

     

                    Dim formFilho As New Form()

                    formFilho.MdiParent = Me

                    formFilho.Name = "formFilho1"

                    formFilho.Show()

                End If

            Next

        End If

    End Sub

     

     

     

    Se a resposta for útil por favor não esqueça de marca.
    Abraço,

    segunda-feira, 16 de junho de 2008 17:54

Todas as Respostas

  • Olá Wagner ,

     

    Você pode fazer assim

     

    Code Snippet

    private void ShowNewForm(object sender, EventArgs e)

    {

        //Verifica se existe algum form filho

        if (this.MdiChildren.Length == 0)

        {

            //Se não existe nenhum form filho não precisa fazer verificação

            Form formFilho = new Form();

            formFilho.MdiParent = this;

            formFilho.Name = "formFilho1";

            formFilho.Show();

        }

        else

        {

            //Se existe form filho faz verificação

            foreach (Form filhos in this.MdiChildren)

            {

                if (filhos.Name == "formFilho1")

                {

                    MessageBox.Show("O form já esta aberto");

                }

                else

                {

                    Form formFilho = new Form();

                    formFilho.MdiParent = this;

                    formFilho.Name = "formFilho1";

                    formFilho.Show();

                }

            }

        }

    }

     

     

     

    Se a resposta for útil por favor não esqueça de marca.
    Abraço,

     

    quinta-feira, 12 de junho de 2008 13:00
  • Oi Daniel, obrigado pela resposta mas esta dando problema, imagino que seja pelo fato de eu estar com um formulario em windows forms, e estes comando estar em C# ou não ? 

     

    segunda-feira, 16 de junho de 2008 12:43
  • Olá ,

     

    Eu não entendi qual o problema passa o código que você esta utilizando que fica mais facil !!

     

    Se a resposta for útil por favor não esqueça de marca.
    Abraço,

     

    segunda-feira, 16 de junho de 2008 13:03
  • Oi Daniel masi uma vez, me desculpe o desconhecimento, mas em vb2005 express os procedimentos estão dando erro pois este envento não é suportado  "private void ShowNewForm(object sender, EventArgs e)" e como eu encerro este processo "Void" ,

     

    evento "ShowNewForm" não é suportado 

    o processo "void" não é encerrado?

     

     

    estou utilizando "ToolStripMenuItem_Click"

     

     

    private void ShowNewForm(object sender, EventArgs e)

    {

    '//Verifica se existe algum form filho

     

     

    "if" sem "then" é assim mesmo?

    "if" sem "endif" é assim mesmo?

    if (this.MdiChildren.Length == 0)

    {

    '//Se não existe nenhum form filho não precisa fazer verificação

    Form formFilho = new Form();

    formFilho.MdiParent = this;

     

    o meu formulario filho é "frmcarbanco"

    formFilho.Name = "formFilho1";

    formFilho.Show();

    }

    else

    {

    //Se existe form filho faz verificação

     

    no comando "foreach" esta dando o erro "Error 14 Declaration expected "

    foreach (Form filhos in this.MdiChildren)

    {

    if (filhos.Name == "formFilho1")

    {

    MessageBox.Show("O form já esta aberto");

    }

    else

    {

    Form formFilho = new Form();

    formFilho.MdiParent = this;

    formFilho.Name = "formFilho1";

    formFilho.Show();

    }

    }

    }

    }

    os colchetes são utilizados em vb2005 express em windows forms?
    segunda-feira, 16 de junho de 2008 14:29
  • Olá wagner,

     

    Você esta utilizando vb.net é isso ??

     

    Se a resposta for útil por favor não esqueça de marca.
    Abraço,

     

    segunda-feira, 16 de junho de 2008 14:36
  •  

    sim vb2005 express
    segunda-feira, 16 de junho de 2008 16:28
  • Olá Wagner ,

     

    O correspondente em VB.NET

     

    Code Snippet

    Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs)

        'Verifica se existe algum form filho

        If Me.MdiChildren.Length = 0 Then

            'Se não existe nenhum form filho não precisa fazer verificação

            Dim formFilho As New Form()

            formFilho.MdiParent = Me

            formFilho.Name = "formFilho1"

            formFilho.Show()

        Else

            'Se existe form filho faz verificação

            For Each filhos As Form In Me.MdiChildren

                If filhos.Name = "formFilho1" Then

                    MessageBox.Show("O form já esta aberto")

                Else

     

                    Dim formFilho As New Form()

                    formFilho.MdiParent = Me

                    formFilho.Name = "formFilho1"

                    formFilho.Show()

                End If

            Next

        End If

    End Sub

     

     

     

    Se a resposta for útil por favor não esqueça de marca.
    Abraço,

    segunda-feira, 16 de junho de 2008 17:54
  • Muito obrigado pela ajuda.

     

    segunda-feira, 16 de junho de 2008 18:29