Partilhar via


Examinar mais detalhadamente: Personalizando seu controle de usuário

Nesta lição, você aprenderá como personalizar o controle de usuário para torná-lo mais útil.

Adicionando rótulos

Na última lição, você testou o controle de usuário NamesControl e descobriu que ele funciona como deveria.Você talvez tenha observado algumas maneiras de melhorá-lo.Por exemplo, não é óbvio qual nome deve ser inserido em cada caixa de texto, e não é possível garantir que um usuário irá inserir todos os três nomes.

Para tornar o controle de usuário mais útil, você pode adicionar rótulos para identificar cada caixa de texto.Você pode definir os rótulos "Primeiro Nome", "Segundo Nome" e "Último Nome", mas e se posteriormente você decidir que quer um "Segundo Nome Inicial " em vez disso?É melhor criar propriedades para o texto do rótulo para que você possa alterar o texto em tempo de design e fornecer um valor padrão para cada propriedade.

Tente-o!

Para personalizar seu controle de usuário

  1. Abra o projeto NamesUserControl que você criou na lição anterior.Se você não salvá-lo, você primeiro precisará voltar para a lição anterior, Testando seu controle de usuário e conclua os procedimentos na lição.

  2. No Solution Explorer, selecione NamesControl.vb e no menu View, escolha Designer.

  3. Da Toolbox, arraste três controles Label para o designer e coloque cada um em cima de cada TextBox.

  4. No Solution Explorer, selecione NamesControl.vb e no menu View, escolha Code.

  5. No Editor de Códigos, adicione o código a seguir para criar as propriedades para o texto do rótulo.

    Private text1 As String = "First Name"
    Property Label1Text() As String
        Get
            Return text1
        End Get
        Set(ByVal value As String)
            text1 = value
            Label1.Text = text1
        End Set
    End Property
    Private text2 As String = "Middle Name"
    Property Label2Text() As String
        Get
            Return text2
        End Get
        Set(ByVal value As String)
            text2 = value
            Label2.Text = text2
        End Set
    End Property
    Private text3 As String = "Last Name"
    Property Label3Text() As String
        Get
            Return text3
        End Get
        Set(ByVal value As String)
            text3 = value
            Label3.Text = text3
        End Set
    End Property
    

    Observe que o código declara três variáveis Private para o texto do rótulo e que as declarações incluem o valor padrão a ser exibido.

  6. No Editor de Códigos, selecione (NamesControl Events) da caixa suspensa à esquerda e selecione o evento Load da caixa suspensa à direita.

  7. Adicione o seguinte código para o manipulador de eventos NamesControl_Load.

    ' Initialize the three labels
    Me.Label1.Text = Label1Text
    Me.Label2.Text = Label2Text
    Me.Label3.Text = Label3Text
    
  8. No menu Build, escolha Build Solution.

  9. No Solution Explorer, selecione Form1.vb e em seguida, no menu View, escolha Designer.

    Verifique que os rótulos têm o texto padrão.Tente alterar a propriedade Label1Text na janela Properties e verifique que ela também muda no controle.

  10. No menu File, escolha Close para fechar o designer do formulário.

Adicionando validação

Outra personalização útil seria adicionar código para validar o que é inserido para verificar se está correto.Em vez de validar cada um dos controles TextBox separadamente, você pode escrever código de validação para o controle de usuário inteiro.

A maioria dos controles tem um evento Validating que é disparado quando o foco se move para fora do controle; é onde você digitará o código de validação.Nesse caso, você desejará escrever código para certificar-se de que cada caixa de texto contém um nome.

Se uma ou mais caixas de texto estiverem vazias, você desejará exibir uma caixa de mensagem para lembrar o usuário para inserir o nome dele.Você pode expor uma propriedade que contém uma mensagem padrão; dessa forma, o usuário do seu controle pode alterar a mensagem para dizer o que desejam.

Também é possível que o usuário do seu controle não tenha um nome do meio. Portanto, você irá também querer adicionar uma propriedade Boolean para desativar a validação da caixa de texto MiddleName.

Tente-o!

Para adicionar validação

  1. No Editor de Códigos, adicione um código para duas propriedades relacionadas à validação — uma para especificar se o nome do meio é necessário e outra para especificar uma mensagem a ser exibida se a validação falhar.

    Private required As Boolean = True
    Property MiddleNameRequired() As Boolean
        Get
            Return required
        End Get
        Set(ByVal value As Boolean)
            required = value
        End Set
    End Property
    Private errormessage As String = "Please enter your name."
    Property ValidationErrorMessage() As String
        Get
            Return errormessage
        End Get
        Set(ByVal value As String)
            errormessage = value
        End Set
    End Property
    
  2. No Editor de Códigos, selecione (NamesControl Events) da caixa suspensa à esquerda e selecione o evento Validating da caixa suspensa à direita.

  3. Adicione o seguinte código para o manipulador de eventos NamesControl_Validating.

    If MiddleNameRequired = True Then
        If FirstName.Text = "" Or MiddleName.Text = "" Or _
    LastName.Text = "" Then
            MsgBox(ValidationErrorMessage)
        End If
    Else
        ' Middle name isn't required.
        If FirstName.Text = "" Or LastName.Text = "" Then
            MsgBox(ValidationErrorMessage)
        End If
    End If
    
  4. No menu Build, escolha Build Solution.

  5. No Solution Explorer, selecione Form1.vb e em seguida, no menu View, escolha Designer.

    Selecione o controle de usuário no formulário e verifique se as duas novas propriedades aparecem na janela Properties.

  6. Da Toolbox, arraste um controle Button para o formulário.

  7. Pressione F5 para executar a página.

    Digite seu nome e sobrenome, mas não insira o nome do meio.Clique no botão e um caixa de mensagem contendo ValidationErrorMessage deve ser exibida.

  8. No menu File,escolha Save All para salvar seu trabalho.

Próximas etapas

Nesta lição, você aprendeu como personalizar o controle de usuário para torná-lo mais útil.Na próxima lição, você aprenderá como usar elementos gráficos para desenhar imagens e texto.

Próxima Lesson: Desenho de imagens: Usando gráficos

Consulte também

Tarefas

Testando seu controle de usuário

Outros recursos

Objetos visíveis: Criando seu primeiro controle de usuário

Programação com objetos: Usando classes

Tour Didático do Visual Basic