PROBLEMA: Não é possível adicionar controle ActiveX à caixa de ferramentas

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: 320780
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Após usar aximp.exe para quebrar um controle ActiveX, você receberá a seguinte mensagem de erro ao tentar adicionar o wrapper AX à guia .NET Framework Components na caixa de diálogo Personalizar caixa de ferramentas :
Não há nenhum componentes no fully qualified path to the Ax wrapper dll que pode ser colocado na caixa de ferramentas.
Causa
Por padrão, o atributo ToolboxItem é definido como False no wrapper gerado AX. Um valor falso para este atributo impede que o controle ou o wrapper sejam adicionados à caixa de ferramentas.
Resolução
Existem duas resoluções para esse problema:
  • Importar o controle usando o ambiente de desenvolvimento

    A maneira mais fácil de evitar esse problema é adicionar o controle ActiveX para a caixa de ferramentas na guia Componentes COM em vez de executando aximp.exe e usando a guia .NET Framework Components na caixa de diálogo Personalizar caixa de ferramentas . O ambiente de desenvolvimento gera os wrappers que você precisa quando você adiciona o controle caixa de diálogo Componentes COM .
  • alterar manualmente o valor de atributo
    1. Observação: Todos os nomes de arquivo nos comandos na etapa 1 e a etapa 3 deve ser nomes de caminho totalmente qualificado.

    2. Execute aximp.exe com a opção / de origem para gerar o código Visual translation from VPE for Csharp o wrapper AX para o controle ActiveX especificado. O arquivo gera o arquivo de origem, um assembly de interoperabilidade e um assembly de wrapper AX para o controle especificado. Por exemplo, o comando a seguir gera o código-fonte Visual translation from VPE for Csharp (Axmscomdlg.cs) para o wrapper AX para o controle diálogo comum Microsoft:
      aximp comdlg32.ocx /out:AxMSComDlg.dll /source						
    3. Abra o arquivo de origem translation from VPE for Csharp Visual em um editor de texto, como o bloco de notas, inserir a seguinte instrução de atributo e, em seguida, salvar o arquivo de origem. cs:
      [System.ComponentModel.ToolboxItemAttribute(true)]						
      Observação : Certifique-se de que você inserir a instrução após o namespace e antes da definição de classe .

    4. Use o seguinte comando para compilar o arquivo .cs:

      Observação : Certifique-se de que você referenciar o assembly de callable wrapper (RCW) runtime:
      csc /t:library /r:MSComDlg.dll /out:AxMSComDlg.dll AxMSComDlg.cs						
Mais Informações
Aximp.exe converte uma biblioteca de tipo inteira do controle ActiveX de uma só vez e produz um conjunto de assemblies que contêm os metadados do Common Language Runtime e controlar a implementação para os tipos são definidos na biblioteca de tipo original. Os arquivos gerados são nomeados de acordo com o seguinte padrão:
  • Proxy Language Runtime comuns para tipos COM: Progid .dll
  • Proxy de Windows Forms para controles ActiveX (onde AX significa ActiveX): .dll AX Progid
Para o controle é usado como exemplo neste artigo (Comdlg32.ocx), os arquivos que são criados são mscomdlg.dll e Axmscomdlg.dll.)

Etapas para reproduzir o problema

Esse problema pode ser reproduzido usando qualquer controle ActiveX. A Microsoft Common Dialog Control (Comdlg32.ocx) é usado neste exemplo.
  1. Execute o comando seguinte a partir de um Visual Studio.NET prompt de comando:
    aximp comdlg32.ocx /out:AxMSComDlg.dll /source					
    Observação: este comando gera o wrapper AX (Axmscomdlg.dll), o RCW (mscomdlg.dll), um arquivo de banco de dados do programa (Axmscomdlg.pdb) e translation from VPE for Csharp Visual da fonte de arquivo (Axmscomdlg.cs) para o wrapper de AX.

  2. Inicie um novo projeto Visual Basic ou Windows Application translation from VPE for Csharp Visual. Por padrão, é criado o Form1.
  3. No menu Ferramentas , clique em Customize Toolbox .
  4. Clique na guia .NET Framework Components .
  5. Clique em Procurar e localize a pasta que contém o wrapper de AX foi gerado na etapa 1.
  6. Clique para selecionar Axmscomdlg.dll e, em seguida, clique em Abrir . Você receber a mensagem de erro descrita na seção "Sintomas".

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 320780 - Última Revisão: 12/07/2015 10:28:27 - Revisão: 2.1

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual J# .NET 2003 Standard Edition

  • kbnosurvey kbarchive kbmt kbdocerr kbprb KB320780 KbMtpt
Comentários