Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Quando voltar a abrir uma aplicação do Windows existente no Visual Studio .NET ou Visual Studio 2005, um controlo de utilizador de ActiveX anteriormente visível poderá não estar visível no Designer de formulários do Windows. Além disso, quando tenta compilar o projecto, poderá receber erros semelhantes ao seguinte:
Tipo 'AxProject1.AxTestControl' não está definido.
Não foi possível encontrar o componente referenciado 'AxProject1'. Um wrapper de assemblagem .NET para a biblioteca de tipos dependente não foi possível encontrar 'Projeto1'.
Quando adicionar um controlo ActiveX do utilizador a um projecto Visual Studio .NET ou Visual Studio 2005, Visual Studio .NET ou Visual Studio 2005 internamente inicia a ferramenta de importação de controlo ActiveX do Windows formulários (aximp.exe). Aximp.exe converte a biblioteca de tipos de ActiveX do controlo de utilizador e gera os seguintes dois ficheiros:
Proxy runtime idioma comum para tipos COM.
Um proxy de Windows Forms para o controlo ActiveX de utilizador.
Estes ficheiros de duas proxy têm informações relacionadas com o controlo de utilizador de ActiveX existente.
Quando adicionar um membro público ao controlo de ActiveX de utilizador existente, tal como um evento, método ou propriedade, e, em seguida, recompile o controlo ActiveX de utilizador, um ou mais membros públicos são adicionados à interface do utilizador controlo ActiveX. No entanto, o ficheiro de proxy de runtime de idioma comum não é actualizado com estas novas informações. Por conseguinte, o ActiveX controlo de utilizador não é gerado correctamente no Designer de formulários do Windows, Windows Forms correspondente proxy não é actualizada e ocorrerá o comportamento abordado na secção "Sintomas" deste artigo.
Nota Na caixa de diálogo Propriedades do projecto, pode clique no separador componentes e seleccione a opção Binário compatibilidade antes de recompilar o controlo de utilizador ActiveX existente no Microsoft Visual Basic 6.0. Neste caso, ainda que o proxy de runtime de idioma comum é actualizado, o proxy de formulários do Windows não é actualizado. Isto resulta nos mesmos sintomas.
Para contornar este problema, remover as referências do controlo ActiveX utilizador existentes e, em seguida, adicione as referências actualizadas novamente. Para o fazer, siga um dos seguintes métodos.
No Solution Explorer, referências , clique com o botão direito do rato AxProject1 e, em seguida, clique em Remover .
Em referências , clique com o botão direito do rato Projeto1 e, em seguida, clique em Remover .
Na caixa de ferramentas, faça duplo clique Project1.TestControl para adicionar o controlo de utilizador de ActiveX modificado o formulário.
Repare que o utilizador de ActiveX controlar no Criador de formulários do Windows e as referências ao AxProject1 e Projeto1 apresentado em References UserControlDemo .
No menu criar , clique em criar soluções .
Não receberá quaisquer erros.
Nota Se usar esta solução alternativa, o controlo de utilizador de ActiveX modificado é adicionado ao formulário como AxTestControl2 e o formulário ainda tem algum código relacionado com AxTestControl1 . Por exemplo, a seguinte instrução é ainda estiver presente, apesar de AxTestControl1 já não estar no formulário:
código de exemplo do Visual Basic .NET
Friend WithEvents AxTestControl1 As AxProject1.AxTestControl
o Visual C# .NET códigos de exemplo
private AxProject1.AxTestControl axTestControl1;
Se utilizou o AxTestControl1 noutro local no código e explicitamente não tiver criado uma instância de um objecto AxProject1.AxTestControl , poderá receber uma
'NullReferenceException'
erro.
Além disso, se tiver vários formulários com uma instância do controlo ActiveX utilizador, terá de repetir os passos anteriores para cada formulário.
No Solution Explorer, referências , clique com o botão direito do rato AxProject1 e, em seguida, clique em Remover .
Em referências , clique com o botão direito do rato Projeto1 e, em seguida, clique em Remover .
Abra a linha de comandos do Visual Studio .NET ou Visual Studio 2005 e, em seguida, mude o caminho do directório para o directório bin de UserControlDemo .
Escreva o seguinte comando e, em seguida, prima a tecla ENTER para executar aximp.exe explicitamente gerar um proxy de runtime do idioma comum e um proxy de Windows Forms:
AxInterop.Project1.dll e Project1.dll são geradas no directório bin.
Nota Substitua o caminho do directório que contém Project1.ocx FilePath.
Mude para o Visual Studio .NET ou Visual Studio 2005. No menu projecto , clique em Add Reference .
Na caixa de diálogo Adicionar referência do que aparece, clique em Procurar .
Localize AxInterop.Project1.dll e Project1.dll e, em seguida, seleccione-os.
Clique em Abrir e, em seguida, clique em OK para adicionar estas referências ao projecto.
Feche e reabra o criador de formulários Windows.
Repare o controlo de utilizador ActiveX modificado no formulário do Windows Designer.
Nota Ao contrário na solução alternativa anterior, o controlo de utilizador de ActiveX modificado ainda se chama AxTestControl1 . Por conseguinte, existe um código desnecessário.
No menu criar , clique em criar soluções .
Não receberá quaisquer erros.
Nota Estes passos baseiam-se o exemplo a partir de "mais informação" secção. Por este motivo, as entidades mencionadas estas tarefas podem diferir das entidades no projecto, dependendo da implementação.
Abra o Visual Basic 6.0 e, em seguida, crie um controlo ActiveX projecto.
Na janela Propriedades, altere o Name para TestControl .
No menu Ver , clique em código e, em seguida, adicione o seguinte código:
Public Sub Method1()
MsgBox ("Method 1")
End Sub
No menu ficheiro , clique em Criar Project1.ocx e, em seguida, clique em OK na caixa de diálogo Criar projecto que aparece.
Abra o Visual Studio .NET ou Visual Studio 2005. Crie uma aplicação do Windows com o nome UserControlDemo utilizando o Visual Basic. NET, Visual Basic 2005 e Visual C#. NET.
No Visual Studio .NET 2003, clique em Adicionar/remover itens de caixa de ferramentas dos controlos no menu Ferramentas .
No Visual Studio .NET 2002, clique em Personalizar caixa de ferramentas dos controlos no menu Ferramentas .
No Visual Studio.2005, clique em Escolher itens da caixa de ferramentas dos controlos no menu Ferramentas .
Clique no separador Componentes COM e, em seguida, clique em Procurar .
Localize Project1.ocx (criada no passo 4) e, em seguida, seleccioná-la.
Clique em Abrir e, em seguida, clique em OK para adicionar Project1.TestControl à caixa de ferramentas.
Na caixa de ferramentas, faça duplo clique Project1.TestControl para adicionar AxTestControl1 o formulário.
As referências ao AxProject1 e Projeto1 aparecem automaticamente em referências para UserControlDemo .
No menu criar , clique em criar soluções .
Guardar o projecto e saia do Visual Studio .NET ou Visual Studio 2005.
Mude para o Visual Basic 6.0 e, em seguida, adicionar um evento público, método ou propriedade TestControl . Por exemplo, acrescentar o código seguinte TestControl :
Public Sub Method2()
MsgBox ("Method 2")
End Sub
No menu projecto , clique em Propriedades do projeto1 .
Em Projeto1 - propriedades do projecto caixa de diálogo que aparece, clique para seleccionar componentes .
Em Versão de compatibilidade , clique para seleccionar Compatibilidade binária e, em seguida, clique em OK .
Nota Passos 14 a 16 descrevem como seleccionar a opção de Compatibilidade binário antes de recompilar o controlo ActiveX de utilizador.
No menu ficheiro , clique em criar Project1.ocx .
Clique em Sim quando lhe for pedido para substituir o ficheiro existente.
Abra o Visual Studio .NET ou Visual Studio 2005 e UserControlDemo .
Repare que TestControl1 não é visível no Criador de formulários do Windows.
No menu criar , clique em criar soluções .
Receber erros mencionados na "Sintomas" secção deste artigo.
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 818220
(http://support.microsoft.com/kb/818220/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.