Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Quando criar um controle personalizado, frequentemente você achará necessário depurar seu comportamento em tempo de design. Isso é especialmente verdadeiro se você estiver criando um designer personalizado para seu controle personalizado. Para obter detalhes, consulte Passo a passo: criando um controle dos Windows Forms que aproveita os recursos do Visual Studio Design-Time.
Você pode depurar seus controles personalizados usando o Visual Studio, assim como depuraria qualquer outra classe do .NET Framework. A diferença é que você depurará uma instância separada do Visual Studio que está executando o código do seu controle personalizado.
Importante
Este artigo destina-se principalmente ao designer de In-Process clássico para Windows Forms com o .NET Framework. Os procedimentos podem não ser diretamente aplicáveis ou totalmente compatíveis com projetos direcionados ao .NET (não ao .NET Framework).
Para projetos do .NET Framework, somente projetos que podem ser compilados com as configurações de destino da plataforma Qualquer ou x64 têm suporte total no Designer. Projetos que usam ActiveX, COM ou outros componentes de 32 bits podem ter problemas de compatibilidade. O Out-Of_Process Framework Designer, atualmente em versão prévia, aborda muitos desses problemas de compatibilidade. No entanto, a funcionalidade de tempo de design pode não funcionar tão bem quanto o designer em processo de 64 bits. Para habilitar o Designer de Estrutura Fora de Processo, navegue até Ferramentas>Opções>Ambiente>Versão prévia dos recursos.
Para obter mais informações sobre o Designer Fora do Processo, confira As alterações no Designer desde o .NET Framework.
Criar o projeto
A primeira etapa é criar o projeto de aplicativo. Você usará esse projeto para criar o aplicativo que hospeda o controle personalizado.
No Visual Studio, crie um projeto de aplicativo do Windows e nomeie-o debuggingExample.
Criar o projeto da biblioteca de controle
Adicione um projeto da Biblioteca de Controle do Windows
à solução. Adicione um novo item UserControl ao projeto DebugControlLibrary. Nomeie-o DebugControl.
No Gerenciador de Soluções, exclua o controle padrão do projeto excluindo o arquivo de código com um nome base de UserControl1.
Crie a solução.
Ponto de verificação
Neste ponto, você poderá ver seu controle personalizado na caixa de ferramentas .
Para verificar o seu progresso, localize a nova guia chamada Componentes DebugControlLibrary e clique para selecioná-la. Quando ele for aberto, você verá seu controle listado como DebugControl com o ícone padrão ao lado dele.
Adicionar uma propriedade ao controle personalizado
Para demonstrar que o código do controle personalizado está em execução em tempo de design, você adicionará uma propriedade e definirá um ponto de interrupção no código que implementa a propriedade.
Abra DebugControl no Editor de Códigos. Adicione o seguinte código à definição de classe:
Private demoStringValue As String = Nothing <BrowsableAttribute(true)> Public Property DemoString() As String Get Return Me.demoStringValue End Get Set(ByVal value As String) Me.demoStringValue = value End Set End Propertyprivate string demoStringValue = null; [Browsable(true)] public string DemoString { get { return this.demoStringValue; } set { demoStringValue = value; } }Crie a solução.
Adicionar seu controle personalizado ao formulário de host
Para depurar o comportamento em tempo de design do controle personalizado, você colocará uma instância da classe do controle personalizado em um formulário do host.
No projeto "DebuggingExample", abra o Form1 no Designer de Formulários do Windows .
Na caixa de Ferramentas, abra a guia Componentes de DebugControlLibrary e arraste uma instância de DebugControl para o formulário.
Encontre a propriedade personalizada
DemoStringna janela Propriedades. Observe que você pode alterar seu valor como faria com qualquer outra propriedade. Observe também que, quando a propriedadeDemoStringé selecionada, a cadeia de caracteres de descrição da propriedade aparece na parte inferior da janela Propriedades.
Configurar o projeto para depuração em tempo de design
Para depurar o comportamento em tempo de desenvolvimento do seu controle personalizado, você depurará outra instância do Visual Studio que está executando o código do seu controle personalizado.
Clique com o botão direito do mouse no projeto DebugControlLibrary no Gerenciador de Soluções e selecione Propriedades.
Na folha de propriedades DebugControlLibrary, selecione a guia Depurar.
Na seção Iniciar ação, selecione Iniciar programa externo. Você depurará uma instância separada do Visual Studio, portanto, clique no botão de reticências (
) para procurar o IDE do Visual Studio. O nome do arquivo executável é devenv.exee, se você tiver instalado no local padrão, seu caminho será %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE.Selecione OK para fechar a caixa de diálogo.
Clique com botão direito do mouse no projeto DebugControlLibrary e selecione Definir como Projeto de Inicialização para habilitar essa configuração de depuração.
Depurar seu controle personalizado em tempo de design
Agora, você está pronto para depurar o controle personalizado enquanto ele é executado em modo de design. Quando você iniciar a sessão de depuração, uma nova instância do Visual Studio será criada e você a usará para carregar a solução "DebuggingExample". Quando você abrir o Form1 no Designer de Formulários , uma instância do seu controle personalizado será criada e começará a executar.
Abra o arquivo de origem DebugControl no Editor de Códigos e coloque um ponto de interrupção no acessador
Setda propriedadeDemoString.Pressione F5 para iniciar a sessão de depuração. Uma nova instância do Visual Studio é criada. Você pode distinguir entre as instâncias de duas maneiras:
A instância de depuração tem as palavras Em execução na barra de título
A instância de depuração tem o botão Iniciar em sua barra de ferramentas Depurar desabilitado
Seu ponto de interrupção é definido na instância de depuração.
Na nova instância do Visual Studio, abra a solução "DebuggingExample". Você pode encontrar facilmente a solução selecionando Projetos Recentes no menu Arquivo. O arquivo de solução "DebuggingExample.sln" será listado como o arquivo usado mais recentemente.
Importante
Se você estiver depurando um projeto do Windows Forms .NET 6 ou posterior, não carregue o projeto, em vez disso, use essa instância do Visual Studio para anexar um depurador ao processo DesignToolsServer.exe. Selecione o item de menu Depurar>Anexar ao processo. Localize DesignToolsServer.exe na lista de processos e pressione Anexar. Para mais informações, consulte As alterações no designer desde o .NET Framework.
Abra o Formulário1 no Designer de Formulários e selecione o controle DebugControl.
Altere o valor da propriedade
DemoString. Quando você confirma a alteração, a instância de depuração do Visual Studio fica em foco e a execução é interrompida no ponto de interrupção. É possível percorrer passo a passo o acessador de propriedade, da mesma forma que você o faria com qualquer outro código.Para interromper a depuração, saia da instância hospedada do Visual Studio ou selecione o botão Parar Depuração na instância de depuração.
Próximas etapas
Agora que você pode depurar seus controles personalizados em tempo de design, há muitas possibilidades para expandir a interação do controle com o IDE do Visual Studio.
Você pode usar a propriedade DesignMode da classe Component para escrever um código que só será executado em tempo de design. Para obter detalhes, consulte DesignMode.
Há vários atributos que você pode aplicar às propriedades do controle para manipular a interação do controle personalizado com o designer. Você pode encontrar esses atributos no namespace System.ComponentModel.
Você pode escrever um designer personalizado para seu controle personalizado. Isso oferece controle total sobre a experiência de design usando a infraestrutura de designer extensível exposta pelo Visual Studio. Para obter detalhes, consulte Passo a passo: criando um controle dos Windows Forms que aproveita os recursos do Visual Studio Design-Time.
Consulte também
.NET Desktop feedback