DECLARAR UMA VARI?VEL PARA TODO TIPO DE CONTROLE
olá amigos alguem sabe como declarar uma variável para todo tipo de controle no vb.net 2008? em vba em posso fazer algo assim para tirar acentos e converter tudo em maiuscula
em vb.net isso não funciona bem assim. eu tenho que usar um bloco para cada tipo de controle como por exemplo
como eu poderia fazer para uma função só com uma variavel só funcionar para vários tipos de controles como textbox e combobox?
agradeço pela atenção.
Sub Letras(ctl As Control)
ctl = StrConv(ctl, 1)
ctl = Replace(ctl, [Ô]Ã[Ô], [Ô]A[Ô])
ctl = Replace(ctl, [Ô]Ã[Ô], [Ô]A[Ô])
ctl = Replace(ctl, [Ô]Â[Ô], [Ô]A[Ô])
ctl = Replace(ctl, [Ô]Ä[Ô], [Ô]A[Ô])
ctl = Replace(ctl, [Ô]À[Ô], [Ô]A[Ô])
ctl = Replace(ctl, [Ô]é[Ô], [Ô]E[Ô])
...
End Sub
Call Letras(Me.nomedocontrole)
em vb.net isso não funciona bem assim. eu tenho que usar um bloco para cada tipo de controle como por exemplo
Sub Letras(ByVal ctl As TextBox)
ctl.Text = StrConv(ctl.Text, 1)
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Â[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ä[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]À[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]é[Ô], [Ô]E[Ô])
End Sub
Call Letras(Me.nomedocontrole)
Sub Letras(ByVal ctl As ComboBox)
ctl.Text = StrConv(ctl.Text, 1)
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Â[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ä[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]À[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]é[Ô], [Ô]E[Ô])
End Sub
Call Letras(Me.nomedocontrole)
como eu poderia fazer para uma função só com uma variavel só funcionar para vários tipos de controles como textbox e combobox?
agradeço pela atenção.
MARSOLIM,
Não entendi bem se é isto, mas acho que seu caso é [Ô]For Each[Ô] que você procura.
Por favor, veja o link e o exemplo que coloquei:
===========================================
Instrução For Each...Next (Visual Basic)
http://msdn.microsoft.com/pt-br/library/5ebk1751.aspx
===========================================
===========================================
é isto?
[][ô]s,
Tunusat.
Não entendi bem se é isto, mas acho que seu caso é [Ô]For Each[Ô] que você procura.
Por favor, veja o link e o exemplo que coloquei:
===========================================
Instrução For Each...Next (Visual Basic)
http://msdn.microsoft.com/pt-br/library/5ebk1751.aspx
===========================================
Public Shared Sub ConfiguraCampos(ByVal Frm As Form)
Dim obj As Object
For Each obj In Frm.Controls
If (TypeOf obj Is TextBox) Or _
(TypeOf obj Is ComboBox) Or _
(TypeOf obj Is MaskedTextBox) Or _
(TypeOf obj Is RichTextBox) Then
obj.ReadOnly = True
[ô]obj.Enabled = False
[ô]obj.ForeColor = System.Drawing.Color.Red
End If
Next
End Sub
===========================================
é isto?
[][ô]s,
Tunusat.
tunusat agradeço pela resposta mas o que acontece é que talvez nem todos os campos serão incluidos. imagine que eu tenha 20 textbox e 8 combos mas eu quero aplicar a regra só em metade deles. ficaria trabalhoso passar o nome dos controles que ficariam dentro ou fora do esquema. minha ideia era poder utilizar uma função só para todos os tipos conforme as que passei no primeiro post mas que não precisasse passar o tipo do controle. No VBA isso é possÃvel conforme mencionei no primeiro post.
EDIÇÃO
fiz um teste mudando As Textbox e As Combobox por As Object e parece que assim funciona. é isso mesmo ou isso pode gerar problemas no futuro? ficou assim
agradeço...
EDIÇÃO
fiz um teste mudando As Textbox e As Combobox por As Object e parece que assim funciona. é isso mesmo ou isso pode gerar problemas no futuro? ficou assim
Sub Letras(ByVal ctl As Object)
ctl.Text = StrConv(ctl.Text, 1)
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Â[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ä[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]À[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]é[Ô], [Ô]E[Ô])
....
End Sub
Call Letras(Me.nomedocontrole)
agradeço...
MARSOLIM, tudo no vb.net descende de Object, até mesmo os controles. Porém, se você quiser seguir o mesmo principio do seu primeiro exemplo, então você tem que importar a biblioteca System.Windows.Forms.Control, daà ficaria assim:
Sub Letras(ByVal ctl As System.Windows.Forms.Control)
ctl.Text = StrConv(ctl.Text, 1)
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Â[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ä[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]À[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]é[Ô], [Ô]E[Ô])
....
End Sub
Call Letras(Me.nomedocontrole)
Sub Letras(ByVal ctl As System.Windows.Forms.Control)
ctl.Text = StrConv(ctl.Text, 1)
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ã[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Â[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]Ä[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]À[Ô], [Ô]A[Ô])
ctl.Text = Replace(ctl.Text, [Ô]é[Ô], [Ô]E[Ô])
....
End Sub
Call Letras(Me.nomedocontrole)
valeu pessoal. fecha a conta e passa a regua
Tópico encerrado , respostas não são mais permitidas