Como criar uma coleção Forms no Visual C++

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 815706
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 308537.
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 815707.
Este artigo se refere aos seguintes namespaces Microsoft .NET Framework Class Library:
  • System.Collections
  • System.Windows.Forms

NESTA TAREFA

Sumário
Microsoft Visual C++ .NET ou Microsoft Visual C++ 2005 não oferece uma coleção interna para objetos de formulário que são usados em um projeto. Este artigo descreve como criar uma classe de coleção personalizada que essencialmente oferece suporte a funcionalidade de uma coleção de formulários .

back to the top

Requisitos

Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Conceitos de programação C++ Visual
A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Microsoft Visual C++ .NET 2003 ou Microsoft Visual C++ 2005
back to the top

Criar a coleção de formulários personalizada

A primeira etapa para criar uma classe de coleção personalizada no Visual C++ .NET ou no Visual C++ 2005 é para adicionar uma classe para o projeto. Para impedir que objetos diferentes de objetos de formulário que está sendo adicionado à coleção, certifique-se que esta classe herda a classe CollectionBase e sombra, em seguida, o método Add . Para fazer isso, execute as seguintes etapas:
  1. Inicie o Microsoft Visual Studio .NET 2003 ou Microsoft Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Clique em Projetos do Visual c++ em Tipos de projeto e, em seguida, clique em Windows Forms Application (. NET) em modelos .

    Observação No Visual C++ 2005, Visual C++ Projects é alterado para Visual C++ .
  4. Na caixa de texto nome , digite Q815706 .
  5. Na caixa de texto local , digite C:\test e, em seguida, clique em OK .
  6. No menu Project , clique em Adicionar classe .
  7. Na caixa de diálogo Add Class , clique em Classe do C++ genérico em modelos e, em seguida, clique em Abrir .

    Observação No Visual C++ 2005, Classe do C++ genérico é alterado para Classe do C++ .
  8. No Assistente de classe do C++ genérico, digite FormsCollection na caixa nome da classe , digite CollectionBase na classe base caixa e, em seguida, clique em Concluir .
  9. Abra o arquivo FormsCollection.cpp e exclua o código para o construtor e o código para o destruidor.
  10. Abra o arquivo FormsCollection.h e, em seguida, substitua o código existente com o código a seguir. # pragma
    #pragma onceusing namespace System::Collections;using namespace System::Windows::Forms;public __gc	class FormsCollection : public CollectionBase{public:	Form* Add(Form *FormObject) 	{		List->Add((FormObject));		return(FormObject) ;	}public:	void  Remove(Form *FormObject)	{		List->Remove(FormObject);	}};
back to the top

Criar uma instância do objeto da coleção Forms

Quando você executar o projeto, você deve criar uma instância da classe de coleção personalizada para adicionar objetos de forma a ele. A maneira mais fácil para se certificar de que a coleção é criado antes de todos os formulários são exibidos é definir o objeto de inicialização para o projeto para a classe que contém o método principal na caixa de diálogo Propriedades do projeto .

Para criar uma instância de um objeto da coleção Forms , siga estas etapas:
  1. Adicione a seguinte declaração de arquivo de cabeçalho no Form1.h.
    #include "FormsCollection.h"
  2. Adicione uma variável FormsCollection para o arquivo Form1.h. Para fazer isso, adicione o seguinte código class. Form1
    public:	FormsCollection *Forms;
  3. No construtor Form1 , após a chamada de função InitializeComponent , adicione o código a seguir para criar uma instância de class. formulários
    Forms = new FormsCollection();
back to the top

Adicionar e remover formulários do Windows para e da coleção

Antes de adicionar um formulário do Windows para a coleção, você deve adicionar um formulário do Windows para o projeto a partir do menu Project . Você deve modificar o método Dispose para que o formulário do Windows possa remover próprio da coleção.

Adicione o seguinte código para o construtor de Form1 para adicionar o formulário à coleção.
Forms->Add(this);
para remover o formulário de Form1 da coleção, acrescentar o código a seguir no método Dispose de class. o Form1
Forms->Remove(this);
back to the top

Usar a coleção Forms

O exemplo a seguir circula a coleção de formulários e exibe o nome e a propriedade Text de qualquer controle no formulário:
  1. No menu Project , clique em Add New Item .
  2. Na caixa de diálogo Add New Item , clique em Formulário (Windows. NET) em modelos .

    Observação No Visual C++ 2005, o Formulário (Windows. NET) é alterado para Windows Form .
  3. Na caixa de texto nome , digite Form2 e, em seguida, clique em Abrir .
  4. Abra o formulário Form2 no modo de design.
  5. Adicione um controle ComboBox para Form2 .
  6. Abra o formulário de Form1 no modo de design.
  7. Adicione um controle Button e um controle TreeView ao Form1.
  8. Adicione a seguinte declaração de arquivo de cabeçalho no Form1.h:
    #include "Form2.h"
  9. Adicione a seguinte variável de membro para o Form1 class.
            public:        Form2 *form2;
  10. Criar uma instância da classe Form2 e, em seguida, adicione a instância para a classe coleção . Para fazer isso, adicione código a seguir para o construtor de class. o Form1
    form2 = new Form2();Forms->Add(form2);
  11. Para remover o formulário Form2 da coleção, adicione o seguinte código na Dispose de class. o Form1
    Forms->Remove(form2);
  12. Clique duas vezes em Button1 para abrir a janela código e, em seguida, adicione o seguinte código no evento Button1_Click .
    IEnumerator* ie = __try_cast<IEnumerator*>(Forms->GetEnumerator());while (ie->MoveNext()){   	Form *LoopForm = __try_cast<Form*>(ie->Current);	IEnumerator* ie1 = __try_cast<IEnumerator*>(LoopForm->Controls->GetEnumerator());	while(ie1->MoveNext())	{		Control *LoopControl = __try_cast<Control*>(ie1->Current);		MessageBox::Show(LoopControl->Name,LoopForm->Text);	}}
back to the top

Criar e testar o aplicativo

  1. Pressione a combinação de teclas CTRL + SHIFT + B para criar o aplicativo.
  2. Pressione a combinação de teclas CTRL + F5 para executar o aplicativo.
  3. Clique em button1 . Observe que as caixas de mensagem exibem os nomes de controle e o nome do formulário onde os controles pertencem.
back to the top
Referências
Para obter mais informações sobre o Microsoft .NET Framework formulário de classe, visite o seguinte site da MSDN (Microsoft Developer): back to the top
Coleção, o Windows, formulários, coleções de formulários

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 815706 - Última Revisão: 11/14/2007 06:30:55 - Revisão: 2.2

Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition

  • kbmt kbwindowsforms kbnamespace kbprogramming kbmanaged kbforms kbcollections kbcollectionclass kbhowtomaster KB815706 KbMtpt
Comentários