• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Asgorath

[vb.net 2003] Classe que usa Reflection para percorrer componentes de uma form

3 mensagens neste tópico

Option Explicit On 
Option Strict On
Imports System.Reflection



Class ClassLimpaTexto

    '' Versão 1 - dia 20-04-2004
    '' Classe para percorrer todos os controlos/componentes de um form e que limpa as respectivas caixas de texto ou comboboxes.


#Region "Revisões"
    '' Revisão 1 - dia 17-08-2004
    '' Novo procedure LimpaCheckBoxes

#End Region
    Public Sub LimpaTextBoxes(ByVal f As Form)
        '' limpa os textboxes
        Dim meuForm As Type = f.GetType()
        Dim campos As FieldInfo() = meuForm.GetFields(BindingFlags.Instance Or BindingFlags.NonPublic)
        For Each campo As FieldInfo In campos
            If campo.FieldType.Name.ToLower = "textbox" Then
                Dim t As TextBox = DirectCast(campo.GetValue(f), TextBox)
                t.Text = String.Empty
            End If
        Next
    End Sub
   

    Public Sub LimpaComboBoxes(ByVal f As Form)
        '' limpa os comboboxes
        Dim meuForm As Type = f.GetType()
        Dim campos As FieldInfo() = meuForm.GetFields(BindingFlags.Instance Or BindingFlags.NonPublic)
        For Each campo As FieldInfo In campos
            If campo.FieldType.Name.ToLower = "combobox" Then
                Dim c As ComboBox = DirectCast(campo.GetValue(f), ComboBox)
                c.Text = String.Empty
            End If
        Next

    End Sub

    Public Sub LimpaCheckBoxes(ByVal f As Form)
        '' desactiva os checkboxes
        Dim meuForm As Type = f.GetType()
        Dim campos As FieldInfo() = meuForm.GetFields(BindingFlags.Instance Or BindingFlags.NonPublic)
        For Each campo As FieldInfo In campos
            If campo.FieldType.Name.ToLower = "checkbox" Then
                Dim c As CheckBox = DirectCast(campo.GetValue(f), CheckBox)
                c.Checked = False
            End If
        Next

    End Sub

    Public Sub LimpaRadioButton(ByVal f As Form)
        '' desactiva os radiobuttons
        Dim meuForm As Type = f.GetType()
        Dim campos As FieldInfo() = meuForm.GetFields(BindingFlags.Instance Or BindingFlags.NonPublic)
        For Each campo As FieldInfo In campos
            If campo.FieldType.Name.ToLower = "radiobutton" Then
                Dim c As RadioButton = DirectCast(campo.GetValue(f), RadioButton)
                c.Checked = False
            End If
        Next

    End Sub


End Class

Como usar :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim limpa As New ClassLimpaTexto
        limpa.LimpaTextBoxes(Me)
End Sub

Atentamente

Jorge

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um bom tutorial Asgorath. Sou um newb em VB.NET, mas fico contente ao saber que existe gente a querer dar este tipo de contributo ao forum.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito a frente!! Ja tinha utilizado reflection em Java e da mesmo muito jeito (principalmente em middleware). Ja agora sabes se esses componentes podem ser componenentes web?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora