[Solucionado] límite de carácteres en textbox

Iniciado por Krizzz, 15 Septiembre 2010, 04:38 AM

0 Miembros y 1 Visitante están viendo este tema.

Krizzz

Hola todos.
estoy haciendo un programa sobre las operaciones básicas entre matrices (suma, resta y multiplicación), anteriormente habia posteado para que me den una idea sobre el diseño, me sirvió de mucho.
estoy usando el textbox para ingresar los datos de la matriz pero estoy dando vueltas en dos problemas que aun no logro resolver.

dim cuadro as control
cuadro = new textbox
Panel1.Controls.add(cuadro)
cuadro.location = new point(x,y)
cuadro.MaxLength= 3 -->   aqui el problema


no me permite que especifique un maximo de carácteres al textbox ¿por qué?

el otro problema es que quiero ingresar solo números al textbox
pero no sé como aplicar este código a todos los textboxs que voy a crear, ya que voy crear dos matrices de un máximo de 7x7 que en un total seria 98 textboxs para ingresar datos, aplicando el método keypress a cada uno me saldría muy largo.

If InStr(1, "0123456789", e.KeyChar) = 0 Then
           e.KeyChar = ""
End If


Gracias por su tiempo.

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Krizzz

gracias por responder
para crear los textboxs lo hice de esta manera

Dim myarray(7, 7) As Control

myarray(1,1) = new textbox

debió ser por eso que la propiedad maxLength me daba error

tengo que cambiar mi código ahora no me acepta crear un array

dim myarray(7,7) as new textbox

voy a leer algunos texto haber que encuentro.

raul338

#3
debes cambiar
Código (vbnet) [Seleccionar]
Dim cuadro As Control
Por
Código (vbnet) [Seleccionar]
Dim cuadro As TextBox

Esto es porque la clase control no tiene la propiedad maxlength y por eso no se la puedes aplicar.

Ademas, primero pon todas las propiedades y eventos. Luego lo agregas al formulario con Controls.Add

Para el evento de los numeros, tienes que agregar un delegado... Ej
Código (vbnet) [Seleccionar]
AddHandler cuadro.KeyPress, new EventHandler(AdressOf cuadro_KeyPress)

'........
Private Sub cuadro_KeyPress(ByVal sender As Object, ByVal e As EventArgs)
     'codigo para solo numeros
End Sub


Saludos!

Pd: escribi todo esto desde el mobil D:

Krizzz

#4
Hola raul, gracias por responder, estoy atrapado con el array de textbox
te pasó mi código.
Código (vbnet) [Seleccionar]

Public Class Form1
   Dim myarray(7, 7) As Control
 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim NumericX As Integer
       Dim NumericY As Integer

       Dim i, j As Integer
       Dim formulax As Decimal
       Dim formulay As Decimal

       NumericX = Contx.Value
       NumericY = Conty.Value

       formulax = (Matriz1.Width / 2) - ((25 / 2) * NumericX + (NumericX - 1) * (10 / 2))
       formulay = (Matriz1.Height / 2) - ((20 / 2) * NumericY + (NumericY - 1) * (10 / 2))

       For i = 1 To NumericX Step 1
           For j = 1 To NumericY Step 1
               myarray(i, j) = New TextBox
               Matriz1.Controls.Add(myarray(i, j))
               myarray(i, j).Location = New Point((formulax + (i - 1) * 35), (formulay + (j - 1) * 30))
               myarray(i, j).Size = New Size(25, 20)
               ¡myarray(i, j).MaxLength = 5 [color=red]problema[/color]
           Next
       Next
       Button1.Enabled = False
       Button2.Enabled = True
   End Sub
End Class


hasta ahi estaba bien, porque podía crear la matriz de textbox
pero ahora queriendo hacerlo
con:

dim matriz as textbox
dim matriz as textbox = new textbox() {matriz1,matriz2... matriz89}

ni idea como hacerlo, leo y re leo lo que hay en googl pero no lo entiendo.

raul338

te dije que cambies "dim matriz(7, 7) As control" por "Dim matriz(7,7) As Textbox"

Solo cambia esa linea de codigo y te funcionara perfecto.

Mira lo que dices cuando lo intentas cambiar... Estas asignando una matriz a una variable comun!!!

Krizzz

gracias por la molestía, estaba en un error en el ambito de la variable, pero ya lo solucioné, gracias