6
« en: Lunes 20 de Abril de 2009, 10:11 »
Saludos a todos,
estoy realizando un dibujo en vb.net 2008. Me acabo de encontrar con un problema q no me abia pasado nunca. adjunto el resultado del grafico q intento mostrar, en la imagen. Como podeis observar se corta el dibujo. Sin haber tocado nada ni haber cambiado nada en el codigo, el dibujo a dejado de salirme completo y a pasado a salirme asi. se supone q tendria q salirme igual por la derecha q por la izkierda. os paso el trozo de codigo donde dibujo la imagen. si alguien pudiese decirme porq puede ocurrir esto seria de gran ayuda.
Me funcionaba y me salia el dibujo y de repente ha dejado de hacerlo.
Dim g As Graphics = Me.CreateGraphics ' declaro q la zona del grafico es el form
Dim g2 As Graphics = Me.CreateGraphics
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
g2.Clear(Me.BackColor) 'voy a acer mover la flecha sobre el dibujo cada vez q toke el boton segun lo q ponga en el combobox
g.Clear(Me.BackColor) 'asi q limpio el grafico
Dim myPen As New Pen(Color.Black, 1) 'declaro mi pen con forma de flecha
myPen.StartCap = LineCap.SquareAnchor
myPen.EndCap = LineCap.ArrowAnchor
Dim trayecto As New GraphicsPath 'declaro los distintos trayectos
Dim trayecto2 As New GraphicsPath
Dim trayecto3 As New GraphicsPath
Dim trayecto4 As New GraphicsPath
Dim trama As LinearGradientBrush = New LinearGradientBrush(New Rectangle(100, 10, 200, 95), Color.Green, Color.Red, LinearGradientMode.Vertical)
' es la brocha con la que voy a pintar la region que keda entre los dos semielipses
trayecto.AddArc(New Rectangle(100, 10, 200, 170), 180, 180)
trayecto2.AddArc(New Rectangle(125, 30, 150, 130), 180, 180)
trayecto3.AddLine(100, 95, 125, 95)
trayecto4.AddLine(275, 95, 300, 95)
Dim RG As New Region(trayecto)
RG.Exclude(trayecto2)
g.FillRegion(trama, RG)
If ComboBox1.Text = "900" Then
g2.DrawLine(myPen, 200, 95, 134, 64)
ElseIf ComboBox1.Text = "1000" Then
g2.DrawLine(myPen, 200, 95, 200, 30)
ElseIf ComboBox1.Text = "1100" Then
g2.DrawLine(myPen, 200, 95, 266, 64)
End If
End Sub
Gracias de antemano.
Un saludo!!!