Como: Exibir modal e sem janela restrita Windows Forms

Formulários e caixas de diálogo são restritas ou sem janela restrita.Uma caixa de diálogo ou formulário Modal devem ser fechado ou oculto antes de você possa continuar a trabalhar com o restante do aplicativo.Para obter mais informações sobre como trabalhar com caixas de diálogo, consulte Entrada de Usuário em Caixas de Diálogo.

Caixas de diálogo que exibem mensagens importantes devem sempre ser restritas.The Sobre caixa de diálogo do Visual Studio é um exemplo de uma caixa de diálogo modal. MessageBox é um formulário modal, que você pode usar.

Formulários Modeless permitem que você alterne o foco entre o formulário e outro formulário sem fechar o formulário inicial.O usuário pode continuar a trabalhar em qualquer lugar em qualquer aplicativo enquanto o formulário é exibido.

Formulários sem janela restrita são mais difícil de programa, pois os usuários possam acessá-los em uma ordem imprevisível.Você precisa manter consistente o estado do aplicativo não importa o que o usuário faça.Frequentemente, ferramentas de janelas são mostrados no modo sem janela restrita.A caixa de diálogo o Find, acessível a partir do menu Edit na Visual Studio, é um exemplo de uma caixa de diálogo sem janela restrita.Use formulários sem janela restrita para exibir comandos ou informações frequentemente utilizados.

Observação:

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Para alterar as configurações, escolher Importar e exportar configurações on the Ferramentas menu.Para obter mais informações, consulte Configurações do Visual Studio.

Para exibir um formulário como um caixa de diálogo de janela restrita

  • Chame o método ShowDialog.

    O exemplo de código a seguir mostra como exibir uma caixa de diálogo modalmente.

    Dim frmAbout as New Form()
    ' Display frmAbout as a modal dialog
    frmAbout.ShowDialog()
    
    //Display frmAbout as a modal dialog
    Form frmAbout = new Form();
    frmAbout.ShowDialog();
    
    //Display frmAbout as a modal dialog
    Form frmAbout =  new Form();
    frmAbout.ShowDialog();
    
    Form ^ frmAbout = gcnew Form();
    //Display frmAbout as a modal dialog
    frmAbout->ShowDialog();
    

    O método ShowDialog tem um argumento opcional, owner,que pode ser usado para especificar um relacionamento pai-filho para um formulário.Por exemplo, quando o código em sua forma principal mostra uma caixa de diálogo, você pode passar Me (em Visual Basic) ou this (em Visual C#) como o proprietário da caixa de diálogo para estabelecer o formulário principal como o proprietário, como o código a seguir mostra.

    Private Sub mnuAbout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuAbout.Click
       Dim f As New Form()
       f.ShowDialog(Me)
    End Sub
    
    private void mnuAbout_Click(object sender, System.EventArgs e)
    {
       Form f = new Form();
       f.ShowDialog(this);
    }
    
    private void mnuAbout_Click(System.Object sender, System.EventArgs e)
    {
       Form f =  new Form();
       f.ShowDialog(this);
    }
    
    private:
       void mnuAbout_Click(System::Object ^ sender,
          System::EventArgs ^ e)
       {
          Form ^ f = gcnew Form();
          f->ShowDialog(this);
       }
    

Para exibir um formulário como um caixa de diálogo de janela restrita

  • Chame o método Show.

    O exemplo a seguir mostra como exibir um caixa de diálogo About em formato sem janela restrita.

    Dim f As New Form()
    ' Display f as a modeless dialog.
    f.Show()
    
    //Display f as a modeless dialog
    Form f= new Form();
    f.Show();
    
    //Display f as a modeless dialog
    Form f = new Form();
    f.ShowDialog(this);
    
    Form ^ f = gcnew Form();
    //Display f as a modeless dialog
    f->Show();
    
    Observação:

    Se um formulário é exibido sistema autônomo janela restrita, o código seguinte a ShowDialog método não é executado até que a caixa de diálogo seja fechada. No entanto, quando uma forma é mostrada como sem janela restrita, o código seguinte no método Show é executado imediatamente depois que o formulário for exibido.

Consulte também

Tarefas

Como: Recuperar informações de caixa de diálogo seletivamente usando várias propriedades

Demonstra Passo a passo: Recuperando informações de caixa de diálogo coletivamente usando objetos

Referência

Visão Geral dos Formulários do Windows

Outros recursos

Criando um Novo Formulário do Windows

Caixas de Diálogo em Formulários do Windows