Partilhar via


Demonstra Passo a passo: Herdar de um controle Windows Forms com Visual C#

Com Visual C# 2005, você pode criar poderosos controles personalizados por meio de herança. Through inheritance you are able to create controls that retain all of the inherent functionality of standard Windows Forms controls but also incorporate custom functionality. Esta explicação passo a passo, você irá criar herdadas de um simples controle chamado ValueButton. Este botão herdará a funcionalidade dos Windows FormspadrãoButton de controle e irá expor personalizada propriedade chamada ButtonValue.

ObservaçãoObservação

Caixas de diálogo e comandos de menu que você vê podem diferir das descritas na Help dependendo das suas configurações ativas ou edição. Para alterar as configurações, escolha Import and Export Settings sobre o Ferramentas menu. For more information, see Trabalhando com configurações.

Creating the Project

When you create a new project, you specify its name in order to set the root namespace, assembly name, and project name, and to ensure that the default component will be in the correct namespace.

Para criar o ValueButtonLib de controle de biblioteca e o controle de ValueButton

  1. Sobre o Arquivo menu, aponte para Novo e, em seguida, clique em projeto para em aberto o Novo projeto caixa de diálogo.

  2. Selecione o Biblioteca de controle deWindows Forms modelo deprojetoda lista de Visual C# projetos e o tipo de ValueButtonLib na Nome caixa.

    O nome do projeto, ValueButtonLib, também é atribuído ao namespace raiz por padrão. The root namespace is used to qualify the names of components in the assembly. Por exemplo, se dois assemblys fornecem componentes chamados ValueButton, você pode especificar o ValueButtonusando ocomponente ValueButtonLib.ValueButton. For more information, see Namespaces (Guia de programação C#).

  3. Em Solution Explorer, à direita clique de- UserControl1. cs, em seguida, escolha Renomear nomenude atalho. Alterar o nome do arquivo para ValueButton.cs. Clique o Sim botão quando for perguntado se deseja renomear todas as referências ao elemento de código 'UserControl1'.

  4. Em Solution Explorer, direito clique em- ValueButton.cs e selecione Exibir Código.

  5. Localize o classdedemonstrativolinha, public partial class ValueButtone alterar o tipo da qual esse controle herda do UserControl para Button. Isso permite que seu controle herdado herdar de toda a funcionalidade da Button de controle.

  6. No Solution Explorer, em aberto o ValueButton.cs o nó para exibir o designer-gerou o arquivo de código, ValueButton.Designer.cs. Abrir este arquivo de O Editor de código.

  7. Localize o InitializeComponent método e remova a linha que atribui o AutoScaleMode propriedade. Esta propriedade não consta do Button de controle.

  8. Do Arquivo menu, escolha Salvar Tudo para salvar o projeto.

    ObservaçãoObservação

    Um visual designer não está mais disponível. Porque o Button controle faz sua própria pintura, você não conseguir modificar sua aparência no designer. Sua representação visual será exatamente o mesmo da classe que herda de (ou seja, Button), a menos que uma modificação no código. You can still add components, which have no UI elements, to the design surface.

Adicionar uma propriedade para o seu controle herdado

Um uso possível dos controles de Windows Forms herdadas é a criação de controles que são idênticos na aparência de controles de Windows Forms padrão, mas expõem propriedades personalizadas. Nesta seção, você irá adicionar uma propriedade chamada ButtonValue para o seu controle.

Para adicionar o Valordepropriedade

  1. Em Solution Explorer, à direita clique de- ValueButton.cse em seguida, clique em Exibir Código nomenude atalho.

  2. Localize o class instrução. Imediatamente após a {, digite o seguinte código:

    [C#]

    // 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;
       }
    }
    

    Este código define os métodos pelos quais o ButtonValuedepropriedade são armazenadas e recuperadas. O getdemonstrativo define o valor retornado para o valor que é armazenado na variávelparticular varValuee o setdemonstrativo define o valor da variável particular através do uso da valuepalavra-chave.

  3. Do Arquivo menu, escolha Salvar Tudo para salvar o projeto.

Testando seu controle.

Controls are not stand-alone projects; they must be hosted in a container. In order to test your control, you must provide a test project for it to run in. You must also make your control accessible to the test project by building (compiling) it. In this section, you will build your control and test it in a Windows Form.

Para criar o seu controle.

  • Sobre o Build menu, clique em Build Solution.

    The build should be successful with no compiler errors or warnings.

Para criar umprojetode teste

  1. Sobre o Arquivo menu, aponte para Adicionar e, em seguida, clique em Novo projeto para em aberto o Adicionarprojeto deNovo caixa de diálogo.

  2. Selecione o Windows nó, posterior a C# Visual nó e clique em o aplicativo deWindows Forms.

  3. No Nome , digite teste.

  4. Em Solution Explorer, à direita-clique o referências nó para testeprojeto, selecione Adicionar referência nomenu de atalhopara exibir o Adicionar referênciacaixa de diálogo.

  5. Clique na guia projetos. O ValueButtonLib projeto será listado em Nome do projeto. Clique duas vezes no projeto para adicionar a referência ao projeto de teste.

  6. Em Solution Explorer, botão direito- teste e selecione Build.

Para adicionar o controle ao formulário

  1. No Solution Explorer, direito clique em- Form1. cs e escolha View Designer nomenude atalho.

  2. No caixa de ferramentas, clique em Componentes de ValueButtonLib. Duplo clique de- ValueButton.

    A ValueButton aparece no formulário.

  3. Botão direito-a ValueButton e selecione Propriedades nomenude atalho.

  4. No Propriedades janela, examine as propriedades desse controle. Observe que eles são idênticos para as propriedades expostas por um botão padrão, exceto que não há uma propriedadeadicional, ButtonValue.

  5. Definir o ButtonValuedepropriedade para 5.

  6. No Tudo Windows Forms guia da Toolbox, duplo clique de- rótulo para adicionar uma Label controle ao seu formulário.

  7. Realoca o rótulo para o centro do formulário.

  8. Clique duas vezes em valueButton1.

    O o Editor deCódigo abre para a valueButton1_Clickevento.

  9. Inserir a seguinte linha de código.

    [C#]

    label1.Text = valueButton1.ButtonValue.ToString();
    
  10. No Solution Explorer, direito clique em- testee escolha Set as Inicialização Project nomenude atalho.

  11. From the Debug menu, select Start Debugging.

    Form1é exibida.

  12. Click valueButton1.

    O numeral '5' é exibido na label1, demonstram que o ButtonValuefoi passado para apropriedade do seu controle herdado label1 por meio de valueButton1_Clickmétodo. Assim, o ValueButton controle herda a toda a funcionalidade do botão padrão do Windows Forms , mas expõe uma propriedadeadicional, personalizado.

Consulte também

Tarefas

Como: Exibir um controle na escolher a caixa de diálogo itens da caixa de ferramentas

Demonstra Passo a passo: Criação de um controle composto com Visual C#

Outros recursos

Programando com Componentes

Passo a passo de criação do componente