Compartilhar via


Solucionando problemas de controle e componente Authoring

Este tópico lista os seguintes problemas comuns que surgem ao desenvolver componentes e controles.Para obter mais informações, consulte Programando com Componentes.

  • Não é possível adicionar o controle à caixa de ferramentas

  • Não é possível depurar o controle de usuário do Windows Forms ou componente

  • Evento é elevado duas vezes no componente ou controle herdado

  • Erro de time de design: "Falha ao criar o componente 'Nome do componente'"

  • STAThreadAttribute

  • Ícone do componente não aparece na caixa de ferramentas

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

Se você deseja adicionar um controle personalizado que você criou em outro projeto ou um controle de terceiros a Caixa de ferramentas, você deve fazê-lo manualmente.Se o projeto corrente contém o controle ou componente, ele deverá aparecer no Caixa de ferramentas automaticamente.Para obter mais informações, consulte Demonstra Passo a passo: Preenchendo automaticamente a caixa de ferramentas com componentes personalizados.

Para adicionar um controle à caixa de ferramentas

  1. clicar com o botão direito do mouse o Caixa de ferramentas e, no menu de atalho, selecionar Escolher itens.

  2. No Escolher itens da caixa de ferramentas diálogo caixa, adicionar o componente:

    • Para adicionar um componente .NET estrutura ou controle, clicar no Componentes do .NET estrutura guia.

      - ou -

    • Para adicionar um componente COM ou um controle ActiveX, clicar no Componentes COM guia.

  3. Se o controle estiver listado na caixa de diálogo confirmar ele está selecionado e, em seguida, clicar OK.

    O controle é adicionado à Caixa de ferramentas.

  4. Se o controle não estiver listado na caixa de diálogo, faça o seguinte:

    1. Clique no botão Browse.

    2. Vá para a pasta que contém o arquivo .dll que contém o controle.

    3. selecionar o arquivo .dll e clicar em aberto.

      O controle aparece na caixa de diálogo.

    4. Confirme se o controle está selecionado e, em seguida, clicar OK.

      O controle é adicionado à Caixa de ferramentas.

Não é possível depurar o controle de usuário do Windows Forms ou componente

Se seu controle deriva o UserControl classe, você pode depurar seu comportamento em time de execução com o contêiner de teste. Para obter mais informações, consulte Como: Teste o comportamento do time de execução de um UserControl.

Outros controles personalizados e os componentes não são projetos autônomos.Eles devem ser hospedados por um aplicativo such sistema autônomo um projeto Windows Forms.Para depurar um controle ou componente, adicione-o para um projeto Windows Forms.

Para depurar um controle ou componente

  1. From a Compilação menu, clicar Criar solução para desenvolver sua solução.

  2. From a Arquivo menu, escolher Adicionar, and then Novo projeto para adicionar um projeto de teste ao seu aplicativo.

  3. No Adicionar novo projeto escolher de caixa de diálogo aplicativos do Windows para o tipo de projeto.

  4. In O gerenciador de soluções, clicar com o botão direito do mouse o Referências nó para o novo projeto.No menu de atalho, clicar Adicionar referência para adicionar uma referência para o projeto que contém o controle ou componente.

  5. Crie uma instância do controle ou componente no projeto teste.Se seu componente estiver no Caixa de ferramentas, você pode arrastá-la para a superfície de designer, ou você pode criar a instância programaticamente, conforme mostrado no exemplo de código a seguir.

    Dim Component1 As New MyNeatComponent()
    
    MyNeatComponent Component1 = new MyNeatComponent();
    

    Você pode depurar seu controle ou componente sistema autônomo de costume.

Para obter mais informações sobre depuração, consulte Depuração no Visual Studio e Demonstra Passo a passo: Depuração personalizada Windows Forms Controls at tempo de design.

Evento é elevado duas vezes no componente ou controle herdado

Isso provavelmente devido a um duplicadoHandles cláusula. Para obter mais informações, consulte Solução de problemas herdados manipuladores de eventos no Visual Basic.

Erro de time de design: "Falha ao criar o componente 'Nome do componente'"

O componente ou controle deve fornecer um construtor padrão sem parâmetros.Quando o ambiente de design cria uma instância do componente ou controle, ele não tenta fornecer quaisquer parâmetros para o construtor sobrecargas que usam parâmetros.

STAThreadAttribute

The STAThreadAttribute informa o common linguagem tempo de execução (CLR) que o Windows Forms usa o modelo single-threaded apartment. Você pode observar o comportamento não intencional se você não aplicar esse atributo para Main método. Por exemplo, imagens de plano de fundo podem não aparecer para controles, como ListView. Alguns controles também podem exigir este atributo de AutoCompletar correto e o comportamento de do tipo arrastar e soltar.

Ícone do componente não aparece na caixa de ferramentas

Quando você usa ToolboxBitmapAttribute para associar um ícone do componente personalizado, o bitmap não aparece na caixa de ferramentas para componentes gerados automaticamente. Para ver o bitmap, recarregar o controle usando o Escolher itens da caixa de ferramentas caixa de diálogo.Para obter mais informações, consulte Como: Fornecer um bitmap de Toolbox para um controle.

Consulte também

Tarefas

Demonstra Passo a passo: Preenchendo automaticamente a caixa de ferramentas com componentes personalizados

Como: Teste o comportamento do time de execução de um UserControl

Demonstra Passo a passo: Depuração personalizada Windows Forms Controls at tempo de design

Solucionando problemas de desenvolvimento de design-time

Outros recursos

Desenvolvimento de Windows Forms Controls at tempo de design

Criação de Componentes

Programando com Componentes