Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O modelo de item de controle de caixa de ferramentas do Windows Forms que está incluído no Visual Studio Extensibility Tools (VSSDK), 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 elemento de controlo da caixa de ferramentas
O modelo de controle de 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 controlo da Caixa de Ferramentas do Windows Forms
Crie um projeto VSIX chamado
MyWinFormsControl. Você pode encontrar o modelo de projeto VSIX na caixa de diálogo Novo projeto , procurando por "vsix".Quando o projeto abrir, adicione um modelo de item chamado
Counterdo Windows Forms Toolbox Control. 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 FormsIsso adiciona um controlo de utilizador, um
ProvideToolboxControlAttributeRegistrationAttribute para colocar o controlo na Toolbox, e uma entrada de 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: a Label para exibir a contagem atual e a Button 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
No Gerenciador de Soluções, clique duas vezes em Counter.cs para abri-lo no designer.
Remova o botão Clique aqui! que está incluído por padrão quando você adiciona o modelo de item de controle da caixa de ferramentas do Windows Forms.
Na Caixa de Ferramentas, arraste um
Labelcontrole e, em seguida, umButtoncontrole abaixo dele para a superfície de design.Redimensione o controle de usuário geral para 150, 50 pixels e redimensione o controle de botão para 50, 20 pixels.
Na janela Propriedades , defina os seguintes valores para os controles na superfície de design.
Controlo Propriedade Valor Label1Texto "" Button1Nome btnRedefinir Button1Texto Reiniciar
Codifique 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 deve 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
Clique duas vezes no formulário para abrir seu manipulador de eventos de carga na janela de código.
Acima do método 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;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
Valuede somente leitura, mas não podem definir o valor diretamente.Coloque o seguinte código no
Loadevento para o controle.private void Counter_Load(object sender, EventArgs e) { currentValue = 0; label1.Text = Message + Value; }Definir o 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.
Crie o seguinte método público para incrementar o contador.
public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); }Adicione uma declaração para o
Incrementedevento à classe de controle.public event EventHandler Incremented;Os chamadores podem adicionar manipuladores a esse evento para responder a alterações no valor do contador.
Retorne ao modo de exibição de design e clique duas vezes no botão Redefinir para gerar o manipulador de
btnReset_Clickeventos. Em seguida, preencha-o como mostrado no exemplo a seguir.private void btnReset_Click(object sender, EventArgs e) { currentValue = 0; label1.Text = displayText + Value; }Imediatamente acima da definição de classe, na
ProvideToolboxControldeclaração de atributo, 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
ProvideToolboxControlatributo e a definição de classe ajustada.[ProvideToolboxControl("General", false)] public partial class Counter : UserControl
Testar o controlo
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
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.
Na instância experimental do Visual Studio, crie um projeto de aplicativo do Windows Forms .
No Gerenciador de Soluções, clique duas vezes em Form1.cs para abri-lo no designer se ainda não estiver aberto.
Na caixa de ferramentas, o
Countercontrole deve ser exibido na seção Geral .Arraste um
Countercontrole para o formulário e selecione-o. As propriedadesValue,MessageeShowResetserão exibidas na janela Propriedades, juntamente com as propriedades herdadas de UserControl.Defina a propriedade
MessagecomoCount:.Arraste um Button controle para o formulário e defina as propriedades de nome e texto do botão como
Test.Clique duas vezes no botão para abrir Form1.cs na visualização de código e criar um manipulador de cliques.
No manipulador de cliques, chame
counter1.Increment().Na função do construtor, após a chamada para
InitializeComponent, digitecounter1``.``Incremented +=e pressione Tab duas vezes.O Visual Studio gera um manipulador de nível de formulário para o
counter1.Incrementedevento.Realce a
Throwinstrução no manipulador de eventos, digitemboxe pressione Tab duas vezes para gerar uma caixa de mensagem a partir do trecho de código mbox.Na próxima linha, adicione o seguinte
if/elsebloco para definir a visibilidade do botão Repor .if (counter1.Value < 5) counter1.ShowReset = false; else counter1.ShowReset = true;Pressione F5.
O formulário é aberto. O
Countercontrole exibe o seguinte texto.Contagem: 0
Selecione Teste.
O contador incrementa e o Visual Studio exibe uma caixa de mensagem.
Feche a caixa de mensagem.
O botão Redefinir desaparece.
Selecione Testar até que o contador atinja 5 fechando as caixas de mensagem de cada vez.
O botão Redefinir reaparece.
Selecione Restaurar.
O contador é redefinido para 0.
Próximos passos
Quando você cria um controle Toolbox , 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álogoExtensões e atualizações de ferramentas>.