Jump to content

[Resolvido] Limpar Textbox


Chamuanza
 Share

Recommended Posts

Um bem Aja a todos

Agradecia uma ajuda.

Tenho uma série de Textbox criadas pelo com o código descrito abaixo. Para alem destas textbox tenho outras

Preciso de limpar as textbox criadas com este código apenas e só. Não sei como fazer uma vez que a rotina que estou a usar limpa toas as textbox existentes.

//
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

	Dim objCxTexto() As TextBox = Nothing
	'Incluir Cx. Texto Linha 1
	Dim intIndice As Integer
	Dim intY As Integer = 10
	For intIndice = 0 To 32
		ReDim Preserve objCxTexto(intIndice)
		objCxTexto(intIndice) = New TextBox
		With objCxTexto(intIndice)
			intY += 46
			.Name = "Textbox" & intIndice.ToString
			' .Text = "X"
			.AutoSize = False
			.Size() = New System.Drawing.Size(40, 20)
			.Location = New System.Drawing.Point(intY + 4, 231)
			.TextAlign = HorizontalAlignment.Center
			.BackColor = Beige
			.Font = New System.Drawing.Font("Burning Wrath", 10, FontStyle.Bold)
			.BorderStyle = BorderStyle.FixedSingle
		End With
		Me.Controls.Add(objCxTexto(intIndice))
	Next
	'Incluir Cx. Texto Linha 2
	Dim intIndice1 As Integer
	Dim intY1 As Integer = 10
	For intIndice1 = 0 To 32
		ReDim Preserve objCxTexto(intIndice1)
		objCxTexto(intIndice1) = New TextBox
		With objCxTexto(intIndice1)
			intY1 += 46
			.Name = "Textbox" & intIndice1.ToString
			' .Text = "X"
			.AutoSize = False
			.Size() = New System.Drawing.Size(40, 20)
			.Location = New System.Drawing.Point(intY1 + 4, 265)
			.TextAlign = HorizontalAlignment.Center
			.BackColor = Beige
			.Font = New System.Drawing.Font("Burning Wrath", 10, FontStyle.Bold)
			.BorderStyle = BorderStyle.FixedSingle
		End With
		Me.Controls.Add(objCxTexto(intIndice1))
	Next

//
Public Sub Limpar(ByVal controlP As Control)
	Dim ctl As Control
	For Each ctl In controlP.Controls
		If TypeOf ctl Is TextBox Then
			DirectCast(ctl, TextBox).Text = String.Empty
		ElseIf ctl.Controls.Count > 0 Then
			Limpar(ctl)
		End If
	Next

End Sub
Edited by Chamuanza
Link to comment
Share on other sites

Tens duas opções, a mais fácil e mais óbvia é declarares o array de textbox fora da sub (global) e apagares as textbox como objCxTexto(0).Clear()

Outra opção era apagares da maneira que tás a fazer mas procurando o texto de todas as textbox's e se for igual á que queres apagar, apagas, o problema disto é que o texto não poderá mudar basicamente... o que provavelmente não é o que pretendes, faz a primeira opção que é melhor.

Link to comment
Share on other sites

Boas He

Obrigado desde já pela atenção

De facto o texto é sempre o mesmo "X" pois trata-se de uma escala de serviço.

Mas na rotina LIMPAR como incorporo a procura do texto?

Link to comment
Share on other sites

É melhor fazeres como na primeira opção que te falei... porque estares a procurar por texto, se alguma vez tiveres mais que uma textbox com esse texto ou mudares alguma coisa, irás ter que mudar o código outra vez...

mas fazes assim:

If TypeOf ctl Is TextBox Then
if ctl.Text = "texto" Then
						    DirectCast(ctl, TextBox).Clear()
				    End If
				    End If
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.