Foros del Web » Programación para mayores de 30 ;) » .NET »

Vb 2010 textbox

Estas en el tema de Vb 2010 textbox en el foro de .NET en Foros del Web. buenas comunidad necesito una mano, tengo varios textbox de los cuales voy cargando contenido desde una base de datos sql El inconveniente surge con el ...
  #1 (permalink)  
Antiguo 03/11/2012, 09:18
 
Fecha de Ingreso: septiembre-2012
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
Vb 2010 textbox

buenas comunidad necesito una mano, tengo varios textbox de los cuales voy cargando contenido desde una base de datos sql
El inconveniente surge con el ajuste del mismo contenido a la hora de imprimirlo en una hoja
Lo que necesito es ajustar a un ancho de referencia con un rectangulo y si supera ese valor generar un salto de linea, tomando en cuenta el tamaño de letra, ya que le he agregado un fontdialog.
El alto del contenido deseo que lo tome como referencia para agregar otra cadena de texto seguida a la anterior.

el codigo de lo realizado hasta el momento:


Dim rectContenido As New Rectangle(79, i * 20 + 490, 451, 446)
Dim renglones1() As String = Split(txtDescripcion1.Text, vbCrLf)
Dim renglones2() As String = Split(txtDescripcion2.Text, vbCrLf)
Dim totalLineas1 As Integer = renglones1.Length
Dim totalLineas2 As Integer = renglones2.Length
Dim alto1 As Integer
Dim alto2 As Integer
Dim ubicacion1 As Integer
Dim ubicacion2 As Integer

'calculos previos para ubicacion en presupuesto
alto1 = FontDialog5.MaxSize * totalLineas1
alto2 = FontDialog5.MaxSize * totalLineas2
ubicacion1 = i * 20 + 490
ubicacion2 = alto1 + 10


'comparo el alto del primer producto
If alto1 > (rectContenido.Height / 2) Then
alto1 = rectContenido.Height / 2
'comparo el alto del segundo producto
ElseIf alto2 > rectContenido.Height Then
alto2 = rectContenido.Height - 4
ElseIf renglones1.Length > rectContenido.Width Then
txtDescripcion1.Text = vbCrLf
End If



'creo los rectangulos correspondientes a los productos
Dim rect1 As New Rectangle(25, ubicacion1, 80, alto1)
Dim rect2 As New Rectangle(80, ubicacion1, 450, alto1)
Dim rect3 As New Rectangle(560, ubicacion1, 80, alto1)
Dim rect4 As New Rectangle(672, ubicacion1, 80, alto1)

i += 1

Dim rect5 As New Rectangle(25, ubicacion1 + ubicacion2, 80, alto2)
Dim rect6 As New Rectangle(80, ubicacion1 + ubicacion2, 450, alto2)
Dim rect7 As New Rectangle(560, ubicacion1 + ubicacion2, 80, alto2)
Dim rect8 As New Rectangle(672, ubicacion1 + ubicacion2, 80, alto2)


e.Graphics.DrawString(txtCantidad1.Text, FontDialog4.Font, Brushes.Black, rect1)
e.Graphics.DrawString(txtDescripcion1.Text, FontDialog5.Font, Brushes.Black, rect2)
e.Graphics.DrawString(txtUnitario1.Text, FontDialog6.Font, Brushes.Black, rect3)
e.Graphics.DrawString((txtCantidad1.Text * txtUnitario1.Text), FontDialog6.Font, Brushes.Black, rect4)

e.Graphics.DrawString(txtCantidad2.Text, FontDialog4.Font, Brushes.Black, rect5)
e.Graphics.DrawString(txtDescripcion2.Text, FontDialog5.Font, Brushes.Black, rect6)
e.Graphics.DrawString(txtUnitario2.Text, FontDialog6.Font, Brushes.Black, rect7)
e.Graphics.DrawString((txtCantidad2.Text * txtUnitario2.Text), FontDialog6.Font, Brushes.Black, rect8)




espero me ayuden
Saludos y gracias!
  #2 (permalink)  
Antiguo 05/11/2012, 12:24
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Vb 2010 textbox

Hola que tal, bueno a lo que te entiendo, por que no obtienes una medida, con eso sacas el substring de la cadena y si es mayor aplicas el salto de linea y el resto lo imprimes en la siguiente linea.

Por ejemplo si son 30 caracteres, sacas el length de la cadena y si es mayor obtienes los primeros 30 y aplicas el salto de linea y luego obtienes los otros 30.

Es una idea espero te sirva


Etiquetas: sql, textbox, vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:04.