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.
Com C#, você pode criar controles personalizados avançados por meio de herança. Por meio da herança, você pode criar controles que retêm toda a funcionalidade inerente dos controles padrão do Windows Forms, mas também incorporam funcionalidades personalizadas. Neste passo a passo, você criará um controle herdado simples chamado ValueButton
. Esse botão herdará a funcionalidade do controle de Button padrão do Windows Forms e exporá uma propriedade personalizada chamada ButtonValue
.
Criar o projeto
Ao criar um novo projeto, especifique seu nome para definir o namespace raiz, o nome do assembly e o nome do projeto e garantir que o componente padrão estará no namespace correto.
Para criar a biblioteca de controle ValueButtonLib e o controle ValueButton
No Visual Studio, crie um projeto de Biblioteca de Controles Windows Forms 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 componenteValueButton
usandoValueButtonLib.ValueButton
. Para obter mais informações, consulte Namespaces.No Gerenciador de Soluções , clique com o botão direito em UserControl1.cse escolha Renomear no menu de atalho. Altere o nome do arquivo para ValueButton.cs. Clique no botão Sim quando for perguntado se deseja renomear 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
class
,public partial class ValueButton
, e altere o tipo do qual esse controle herda de UserControl para Button. Isso permite que seu controle herdado herde toda a funcionalidade do controle Button.No Gerenciador de Soluções, abra o nó ValueButton.cs para exibir o arquivo de código gerado pelo designer, ValueButton.Designer.cs. Abra este arquivo no editor de código .
Localize o método
InitializeComponent
e remova a linha que atribui a propriedade AutoScaleMode. Essa propriedade não existe no controle Button.No menu Arquivo, escolha Salvar Tudo para salvar 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 consegue modificar sua aparência no designer. Sua representação visual será exatamente igual à 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 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 de valor
No Gerenciador de Soluções, clique com o botão direito do mouse em ValueButton.cse depois clique em Exibir 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çãoget
define o valor retornado para o valor armazenado na variável privadavarValue
e a instruçãoset
define o valor da variável privada usando a palavra-chavevalue
.No menu Arquivo, escolha Salvar Tudo para salvar o projeto.
Testar o controle
Controles 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 compilando-o. Nesta seção, você criará seu controle e o testará em um Formulário do Windows.
Para compilar seu controle
No menu Compilar, clique em Compilar Solução. O build deve ser bem-sucedido sem erros ou avisos do compilador.
Para criar um projeto de teste
No menu
Arquivo , aponte paraAdicionar e clique emNovo Projeto para abrir a caixa de diálogo Adicionar Novo Projeto. Selecione o nó Windows, abaixo de Visual C# e clique em Aplicativo dos Windows Forms.
Na caixa Nome, insira Teste.
No Gerenciador de Soluções, clique com o botão direito do mouse no nó Referências do seu projeto de teste, em seguida, selecione Adicionar Referência no menu de atalho para exibir a caixa de diálogo Adicionar Referência.
Clique na guia rotulada como 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 Gerenciador de Soluções, clique com o botão direito do mouse em Testar e selecione Compilar.
Para adicionar seu controle ao formulário
No Gerenciador de Soluções, clique com o botão direito do mouse em Form1.cs e selecione Designer de Modo de Exibição no menu de atalho.
Na Caixa de Ferramentas, selecione Componentes ValueButtonLib. Clique duas vezes em ValueButton.
Um ValueButton aparece no formulário.
Clique com o botão direito do mouse em ValueButton e selecione Propriedades no menu de atalho.
Na janela Propriedades, examine as propriedades desse controle. Observe que elas são idênticas às propriedades expostas por um botão padrão, exceto que há uma propriedade adicional, ButtonValue.
Defina a propriedade ButtonValue como 5.
Na guia Todos os Windows Forms na Caixa de Ferramentas, clique duas vezes em Rótulo para adicionar um controle Label ao formulário.
Realoque o rótulo para o centro do formulário.
Clique duas vezes em
valueButton1
.O Editor de Códigos é aberto no 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 do mouse em Teste e escolha Definir como Projeto de Inicialização no menu de atalho.
No menu Depurar , selecione Iniciar Depuração.
Form1
é exibido.Clique em
valueButton1
.O numeral '5' é exibido em
label1
, demonstrando que a propriedadeButtonValue
de seu controle herdado foi passada paralabel1
por meio do métodovalueButton1_Click
. Assim, o controleValueButton
herda toda a funcionalidade do botão padrão do Windows Forms, mas expõe uma propriedade personalizada adicional.
Consulte também
.NET Desktop feedback