Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este tópico lista os seguintes problemas comuns que surgem ao desenvolver componentes e controles:
Não é possível adicionar controle à caixa de ferramentas
Não é possível depurar o controle de usuário ou componente do Windows Forms
O evento é acionado duas vezes no controle ou componente herdado
Design-Time Erro: "Falha ao criar o componente 'Nome do Componente'"
STAThreadAttribute
Ícone de componente não aparece na caixa de ferramentas
Não é possível adicionar controle à caixa de ferramentas
Se você quiser adicionar um controle personalizado que você criou em outro projeto ou um controle de terceiros para o Toolbox, você deve fazê-lo manualmente. Se o projeto atual contiver seu controle ou componente, ele deverá aparecer no Toolbox automaticamente. Para obter mais informações, consulte Passo a passo: preenchendo automaticamente a caixa de ferramentas com componentes personalizados.
Para adicionar um controle à Caixa de Ferramentas
Clique com o botão direito do rato no Caixa de Ferramentas
e, no menu de atalho, selecione Escolher Itens .Na caixa de diálogo Escolher Itens da Caixa de Ferramentas, adicione o componente:
Se você quiser adicionar um componente ou controle do .NET Framework, clique na guia
Componentes do .NET Framework. – ou –
Se você quiser adicionar um componente COM ou controle ActiveX, clique na guia Componentes COM.
Se o controle estiver listado na caixa de diálogo, confirme se ele está selecionado e clique em OK.
O controle é adicionado ao Toolbox.
Se o controle não estiver listado na caixa de diálogo, faça o seguinte:
Clique no botão Navegar.
Navegue até a pasta que contém o arquivo .dll que contém seu controle.
Selecione o arquivo .dll e clique em Abrir.
Seu controle aparece na caixa de diálogo.
Confirme se o controlo está selecionado e, em seguida, clique em OK.
Seu controle é adicionado ao Toolbox.
Não é possível depurar o controle de usuário ou componente do Windows Forms
Se seu controle deriva da classe UserControl, você pode depurar seu comportamento em tempo de execução com o contêiner de teste. Para obter mais informações, consulte Como testar o comportamento Run-Time de um UserControl.
Outros controles e componentes personalizados não são projetos autônomos. Eles devem ser hospedados por um aplicativo, como um projeto do Windows Forms. Para depurar um controle ou componente, você deve adicioná-lo a um projeto do Windows Forms.
Para depurar um controle ou componente
No menu Build, clique em Build Solution para compilar a sua solução.
No menu Arquivo
, escolha Adicionar e, em seguida,Novo Projeto para adicionar um projeto de teste ao seu aplicativo. Na caixa de diálogo Adicionar Novo Projeto, escolha Aplicação do Windows para o tipo de projeto.
No Gerenciador de Soluções
, clique com o botão direito do mouse no nó Referências para o novo projeto. No menu de atalho, clique em Adicionar Referência para adicionar uma referência ao projeto que contém o controlo ou componente. Crie uma instância do seu controle ou componente no projeto de teste. Se o seu componente estiver na Caixa de Ferramentas, poderá arrastá-lo para a superfície do designer ou criar a instância programaticamente, como demonstrado no exemplo de código a seguir.
Dim Component1 As New MyNeatComponent()
MyNeatComponent Component1 = new MyNeatComponent();
Agora você pode depurar seu controle ou componente como de costume.
Para obter mais informações sobre depuração, consulte Depuração no Visual Studio e Passo a passo: Depurando controlos personalizados do Windows Forms no momento de desenho.
O evento é acionado duas vezes no controle ou componente herdado
Isto deve-se provavelmente a uma cláusula de Handles
duplicada. Para obter mais informações, consulte Solucionando problemas de manipuladores de eventos herdados no Visual Basic.
Design-Time Erro: "Falha ao criar o componente 'Nome do componente'"
O seu componente ou controlo deve fornecer um construtor sem parâmetros. Quando o ambiente de design cria uma instância de seu componente ou controle, ele não tenta fornecer parâmetros para sobrecargas de construtor que usam parâmetros.
STAThreadAttribute
O STAThreadAttribute informa o Common Language Runtime (CLR) que o Windows Forms utiliza o modelo de apartamento com thread único. Você pode notar um comportamento não intencional se você não aplicar esse atributo ao método Main
do seu aplicativo Windows Forms. Por exemplo, imagens de plano de fundo podem não aparecer para controles como ListView. Alguns controlos podem também exigir este atributo para o correto funcionamento do AutoComplete e do arrastar e soltar.
Ícone de componente não aparece na caixa de ferramentas
Quando você usa ToolboxBitmapAttribute para associar um ícone ao componente personalizado, o bitmap não aparece na caixa de ferramentas para componentes gerados automaticamente. Para ver o bitmap, recarregue o controle usando a caixa de diálogo Escolher itens da caixa de ferramentas. Para obter mais informações, consulte Como: Fornecer um bitmap da caixa de ferramentas para um controlo.
Ver também
- Desenvolvendo controles do Windows Forms em tempo de design
- passo a passo: preenchendo automaticamente a caixa de ferramentas com componentes personalizados
- Como: Testar o comportamento Run-Time de um UserControl
- Passo a passo: Depuração de controles personalizados do Windows Forms em tempo de projeto
.NET Desktop feedback