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
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.
No Solution Explorer, selecione NamesControl.vb e no menu View, escolha Designer.
Da Toolbox, arraste três controles Label para o designer e coloque cada um em cima de cada TextBox.
No Solution Explorer, selecione NamesControl.vb e no menu View, escolha Code.
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.
No Editor de Códigos, selecione (NamesControl Events) da caixa suspensa à esquerda e selecione o evento Load da caixa suspensa à direita.
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
No menu Build, escolha Build Solution.
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.
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
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
No Editor de Códigos, selecione (NamesControl Events) da caixa suspensa à esquerda e selecione o evento Validating da caixa suspensa à direita.
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
No menu Build, escolha Build Solution.
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.
Da Toolbox, arraste um controle Button para o formulário.
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.
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