Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2012, 09:18
CPArt
 
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!