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.
Com o C#, pode-se criar poderosos controles personalizados através da herança. Através da herança, você pode criar controles que mantêm toda a funcionalidade inerente dos controles padrão do Windows Forms, mas também incorporam a funcionalidade personalizada. Neste passo a passo, você criará um controle herdado simples chamado ValueButton. Esse botão herdará a funcionalidade do controle Button padrão do Windows Forms e exporá uma propriedade personalizada chamada ButtonValue.
Criar o projeto
Ao criar um novo projeto, você especifica seu nome para definir o namespace raiz, o nome do assembly e o nome do projeto e para garantir que o componente padrão esteja no namespace correto.
Para criar a biblioteca de controle ValueButtonLib e o controle ValueButton
No Visual Studio, crie um novo Windows Forms Control Library projeto e nomeie-o ValueButtonLib.
O nome do projeto,
ValueButtonLib, também é atribuído ao namespace raiz por padrão. O namespace raiz é usado para qualificar os nomes dos componentes no assembly. Por exemplo, se dois assemblies fornecerem componentes chamadosValueButton, você poderá especificar seu componenteValueButtonusandoValueButtonLib.ValueButton. Para obter mais informações, consulte Namespaces.No Gerenciador de Soluções , clique com o botão direito do mouse UserControl1.cse, em seguida, escolha Renomear no menu de atalho. Altere o nome do arquivo para ValueButton.cs. Clique no botão Sim quando lhe for perguntado se pretende mudar o nome de todas as referências para o elemento de código '
UserControl1'.No Gerenciador de Soluções, clique com o botão direito do mouse em ValueButton.cs e selecione Exibir Código.
Localize a linha de instrução
classepublic partial class ValueButton, e altere o tipo do qual este controlo herda, de UserControl para Button. Isso permite que seu controle herdado herde todas as funcionalidades do controle Button.No Explorador de Soluções , abra o nó ValueButton.cs para mostrar o arquivo de código gerado pelo designer, ValueButton.Designer.cs. Abra este arquivo no Code Editor.
Localize o método
InitializeComponente remova a linha que atribui a propriedade AutoScaleMode. Essa propriedade não existe no controle Button.No menu Arquivo, escolha Guardar tudo para guardar o projeto.
Observação
Um designer visual não está mais disponível. Como o controle Button faz sua própria pintura, você não pode modificar sua aparência no designer. Sua representação visual será exatamente a mesma da classe da qual herda (ou seja, Button), a menos que seja modificada no código. Você ainda pode adicionar componentes, que não têm elementos de interface do usuário, à superfície de design.
Adicionar uma propriedade ao seu controle herdado
Um possível uso de controles herdados do Windows Forms é a criação de controles que são idênticos na aparência dos controles padrão do Windows Forms, mas expõem propriedades personalizadas. Nesta seção, você adicionará uma propriedade chamada ButtonValue ao seu controle.
Para adicionar a propriedade Value
No Explorador de Soluções, clique com o botão direito em ValueButton.cse, em seguida, clique em Ver Código no menu de atalho.
Localize a instrução
class. Imediatamente após o{, digite o seguinte código:// Creates the private variable that will store the value of your // property. private int varValue; // Declares the property. public int ButtonValue { // Sets the method for retrieving the value of your property. get { return varValue; } // Sets the method for setting the value of your property. set { varValue = value; } }Esse código define os métodos pelos quais a propriedade
ButtonValueé armazenada e recuperada. A instruçãogetdefine o valor retornado para o valor armazenado na variável privatevarValuee a instruçãosetdefine o valor da variável private usando a palavra-chavevalue.No menu Arquivo, escolha Guardar tudo para guardar o projeto.
Testar o controlo
Os controlos não são projetos autónomos; eles devem ser hospedados em um contêiner. Para testar seu controle, você deve fornecer um projeto de teste para que ele seja executado. Você também deve tornar seu controle acessível ao projeto de teste construindo (compilando-o). Nesta seção, você criará seu controle e o testará em um Windows Form.
Para construir o teu controle
No menu Build, clique em Build Solution. A compilação deve ser bem-sucedida sem erros ou avisos do compilador.
Para criar um projeto de teste
No menu Arquivo, aponte para Adicionar e clique em Novo Projeto para abrir a caixa de diálogo Adicionar Novo Projeto.
Selecione o nó Windows, abaixo do nó Visual C# e clique em Windows Forms Application.
Na caixa Nome, digite Teste.
No Explorador de Soluções , clique com o botão direito do rato no nó Referências do seu projeto de teste e selecione Adicionar Referência no menu de atalho para exibir a caixa de diálogo Adicionar Referência.
Clique na guia Projetos. Seu projeto ValueButtonLib será listado em Nome do Projeto. Clique duas vezes no projeto para adicionar a referência ao projeto de teste.
No Explorador de Soluções, clique com o botão direito do mouse em Teste e selecione Criar.
Para adicionar seu controle ao formulário
No Explorador de Soluções, clique com o botão direito do mouse em Form1.cs e escolha Ver Designer no menu de atalho.
Na Toolbox, selecione ValueButtonLib Components. Clique duas vezes ValueButton.
Um ValueButton aparece no formulário.
Clique com o botão direito do mouse no ValueButton e selecione Propriedades no menu de atalho.
Na janela Properties, examine as propriedades desse controle. Observe que eles são idênticos às propriedades expostas por um botão padrão, exceto que há uma propriedade adicional, ButtonValue.
Defina a propriedade ButtonValue como 5.
Na aba Todos os Formulários do Windows
do Caixa de Ferramentas , clique duas vezes noRótulo para adicionar um controloao seu formulário. Realoque o rótulo para o centro do formulário.
Clique duas vezes em
valueButton1.O Code Editor abre para o evento
valueButton1_Click.Insira a seguinte linha de código.
label1.Text = valueButton1.ButtonValue.ToString();No Gerenciador de Soluções , clique com o botão direito em Testee escolha Definir como Projeto de Inicialização no menu de atalho.
No menu Depurar, selecione Iniciar Depuração.
Form1aparece.Clique em
valueButton1.O numeral '5' é exibido em
label1, demonstrando que a propriedadeButtonValuedo seu controle herdado foi passada paralabel1através do métodovalueButton1_Click. Assim, seu controleValueButtonherda toda a funcionalidade do botão padrão do Windows Forms, mas expõe uma propriedade personalizada adicional.
Ver também
.NET Desktop feedback