Compartilhar via


Criar um controle de caixa de ferramentas do Windows Forms

O modelo de item de controle de caixa de ferramentas do Windows Forms que está incluído no Visual Studio Extensibility Tools (VS SDK), permite que você crie um controle de caixa de ferramentas que é adicionado automaticamente quando a extensão é instalada. Este passo a passo mostra como usar o modelo para criar um controle de contador simples que você pode distribuir para outros usuários.

Criar o controle Toolbox

O modelo de controle da caixa de ferramentas do Windows Forms cria um controle de usuário indefinido e fornece toda a funcionalidade necessária para adicionar o controle à caixa de ferramentas.

Criar uma extensão com um controle de caixa de ferramentas do Windows Forms

  1. Crie um projeto VSIX chamado MyWinFormsControl. Você pode encontrar o modelo de projeto VSIX na caixa de diálogo Novo projeto , procurando por "vsix".

  2. Quando o projeto for aberto, adicione um modelo de item de controle do Windows Forms Toolbox chamadoCounter. No Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto e selecione Adicionar>Novo Item. Na caixa de diálogo Adicionar Novo Item, vá para Visual C#>Extensibility e selecione Controle da Caixa de Ferramentas do Windows Forms

  3. Isso adiciona um controle de usuário, um para colocar o controle na caixa de ferramentas e uma entrada de ProvideToolboxControlAttributeRegistrationAttribute ativo Microsoft.VisualStudio.ToolboxControl no manifesto VSIX para implantação.

Criar uma interface de usuário para o controle

O Counter controle requer dois controles filho: um para exibir a contagem atual e um LabelButton para redefinir a contagem para 0. Nenhum outro controle filho é necessário porque os chamadores incrementarão o contador programaticamente.

Para criar a interface do usuário

  1. No Gerenciador de Soluções, clique duas vezes em Contador.cs para abri-lo no designer.

  2. Remova o botão Clique Aqui ! que é incluído por padrão quando você adiciona o modelo de item de controle do Windows Forms Toolbox.

  3. Na Caixa de Ferramentas, arraste um controle e, em seguida, um LabelButton controle abaixo dele para a superfície de design.

  4. Redimensione o controle de usuário geral para 150, 50 pixels e redimensione o controle de botão para 50, 20 pixels.

  5. Na janela Propriedades, defina os seguintes valores para os controles na superfície de design.

    Controle Propriedade Valor
    Label1 Texto ""
    Button1 Nome btnRedefinir
    Button1 Texto Restaurar

Codificar o controle de usuário

O Counter controle irá expor um método para incrementar o contador, um evento a ser gerado sempre que o contador for incrementado, um botão Redefinir e três propriedades para armazenar a contagem atual, o texto de exibição e se deseja mostrar ou ocultar o botão Redefinir. O ProvideToolboxControl atributo determina onde na caixa de ferramentas o Counter controle aparecerá.

Para codificar o controle de usuário

  1. Clique duas vezes no formulário para abrir seu manipulador de eventos de carregamento na janela de código.

  2. Acima do método do manipulador de eventos, na classe de controle, crie um inteiro para armazenar o valor do contador e uma cadeia de caracteres para armazenar o texto de exibição, conforme mostrado no exemplo a seguir.

    int currentValue;
    string displayText;
    
  3. Crie as seguintes declarações de propriedade pública.

    public int Value {
        get { return currentValue; }
    }
    
    public string Message {
        get { return displayText; }
        set { displayText = value; }
    }
    
    public bool ShowReset {
        get { return btnReset.Visible; }
        set { btnReset.Visible = value; }
    }
    
    

    Os chamadores podem acessar essas propriedades para obter e definir o texto de exibição do contador e para mostrar ou ocultar o botão Redefinir . Os chamadores podem obter o valor atual da propriedade somente Value leitura, mas não podem definir o valor diretamente.

  4. Coloque o código a seguir no Load evento para o controle.

    private void Counter_Load(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = Message + Value;
    }
    
    

    A definição do texto Label no Load evento permite que as propriedades de destino sejam carregadas antes que seus valores sejam aplicados. Definir o texto Label no construtor resultaria em um Label vazio.

  5. Crie o seguinte método público para incrementar o contador.

    public void Increment()
    {
        currentValue++;
        label1.Text = displayText + Value;
        Incremented(this, EventArgs.Empty);
    }
    
    
  6. Adicione uma declaração para o Incremented evento à classe de controle.

    public event EventHandler Incremented;
    

    Os chamadores podem adicionar manipuladores a esse evento para responder a alterações no valor do contador.

  7. Retorne ao modo de design e clique duas vezes no botão Redefinir para gerar o manipulador de btnReset_Click eventos. Em seguida, preencha-o conforme mostrado no exemplo a seguir.

    private void btnReset_Click(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = displayText + Value;
    }
    
    
  8. Imediatamente acima da definição de classe, na declaração de atributo ProvideToolboxControl , altere o valor do primeiro parâmetro de "MyWinFormsControl.Counter" para "General". Isso define o nome do grupo de itens que hospedará o controle na Caixa de Ferramentas.

    O exemplo a seguir mostra o atributo e a ProvideToolboxControl definição de classe ajustada.

    [ProvideToolboxControl("General", false)]
    public partial class Counter : UserControl
    

Testar o controle

Para testar um controle Toolbox, primeiro teste-o no ambiente de desenvolvimento e, em seguida, teste-o em um aplicativo compilado.

Para testar o controle

  1. Pressione F5 para iniciar a depuração.

    Este comando cria o projeto e abre uma segunda instância experimental do Visual Studio que tem o controle instalado.

  2. Na instância experimental do Visual Studio, crie um projeto de aplicativo do Windows Forms.

  3. No Gerenciador de Soluções, clique duas vezes em Form1.cs para abri-lo no designer se ele ainda não estiver aberto.

  4. Na caixa de ferramentas, o Counter controle deve ser exibido na seção Geral.

  5. Arraste um Counter controle para o formulário e selecione-o. As Valuepropriedades , e ShowReset serão exibidas na janela Propriedades, Messagejuntamente com as propriedades herdadas do UserControl.

  6. Defina a propriedade Message como Count:.

  7. Arraste um Button controle para o formulário e defina as propriedades de nome e texto do botão como Test.

  8. Clique duas vezes no botão para abrir o Form1.cs no modo de exibição de código e criar um manipulador de cliques.

  9. No manipulador de cliques, chame counter1.Increment().

  10. Na função do construtor, após a chamada para InitializeComponent, digite counter1``.``Incremented += e pressione Tab duas vezes.

    Visual Studio gera um manipulador de nível de formulário para o counter1.Incremented evento.

  11. Realce a Throw instrução no manipulador de eventos, digite mboxe pressione Tab duas vezes para gerar uma caixa de mensagem a partir do trecho de código mbox.

  12. Na próxima linha, adicione o bloco a seguir if/else para definir a visibilidade do botão Redefinir .

    if (counter1.Value < 5) counter1.ShowReset = false;
    else counter1.ShowReset = true;
    
  13. Pressione F5.

    O formulário é aberto. O Counter controle exibe o texto a seguir.

    Contagem: 0

  14. Selecione Testar.

    O contador incrementa e o Visual Studio exibe uma caixa de mensagem.

  15. Feche a caixa de mensagem.

    O botão Redefinir desaparece.

  16. Selecione Testar até que o contador atinja 5 fechando as caixas de mensagem de cada vez.

    O botão Redefinir reaparece.

  17. Selecione Restaurar.

    O contador é redefinido para 0.

Próximas etapas

Quando você cria um controle Toolbox, o Visual Studio cria um arquivo chamado ProjectName.vsix na pasta \bin\debug\ do seu projeto. Você pode implantar o controle carregando o arquivo .vsix em uma rede ou em um site. Quando um usuário abre o arquivo .vsix, o controle é instalado e adicionado à caixa de ferramentas do Visual Studio no computador do usuário. Como alternativa, você pode carregar o arquivo .vsix no Visual Studio Marketplace para que os usuários possam encontrá-lo navegando na caixa de diálogo Extensões e atualizações de ferramentas>.