none
Código de VB 2008 RRS feed

  • Pregunta

  • Hola,

    Me he pasado de Visual Basic 6 a Visual Basic 2008 Express. Ésta nueva versión lo “traduce”  hasta cierto punto, pero me encuentro con numerosos avisos de posibles errores (sobre todo al traducir las matrices, aunque parecen ya resueltos), con que aporta código como proveniente de VB 6, y con que hay grandes cambios de código.

    Para hacer por mi cuenta un traspaso al código “real” de VB 2008 y así familiarizarme con él, necesitaría encontrar alguna página con ejemplos de código de VB 2008.

    Por si no me he explicado bien, expondré un ejemplo muy simple de un tropiezo con VB 2008 para el que he buscado y no he hallado soluciones: hacer que un control label cambie su apariencia en evento MouseMove

    Código antiguo en VB 6

    Private Sub lblNueva_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

        lblNueva.FontItalic = True

        lblNueva.FontUnderline = True

    End Sub

    Código "traducido" de VB 6 a VB 2008

    Private Sub lblNueva_MouseMove(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.MouseEventArgs) Handles lblNueva.MouseMove

                Dim Button As Short = eventArgs.Button \ &H100000

                Dim Shift As Short = System.Windows.Forms.Control.ModifierKeys \ &H10000

                Dim X As Single = VB6.PixelsToTwipsX(eventArgs.X)

                Dim Y As Single = VB6.PixelsToTwipsY(eventArgs.Y)

                lblNueva.Font = VB6.FontChangeItalic(lblNueva.Font, True)

                lblNueva.Font = VB6.FontChangeUnderline(lblNueva.Font, True)

          End Sub

    Código propio de VB 2008

    ¿...? Después varias intentonas no he conseguido dar con la combinación correcta.

    Agradeceré todas y cada una de las respuestas.

    Saludos

    domingo, 21 de julio de 2013 15:31

Respuestas

Todas las respuestas

  • hola

     Private Sub lblNueva_MouseMove(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.MouseEventArgs) Handles lblNueva.MouseMove
     
    	lblNueva.Font = New Font(lblNueva.Font.FontFamily, FontStyle.Underline Or Drawing.FontStyle.Italic)
    	
     End Sub 

    con esa simple linea ya logras lo que buscas

    How can I use multiple combinations of font styles in VB.NET?

    Make Font Bold/Italic/Underline Visual Basic

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 21 de julio de 2013 16:10
  • Hola,

    Es una satisfacción haber encontrado un lugar donde alguien responde a las preguntas.

    Por si es de interés: Mi PC trabaja aún con Windows xp, y mi versión de Visual Basic es la 2008 Express.

    He insertado el código que me envías, y lo que ocurre es que la etiqueta se queda reducida al tamaño mínimo, y además no se subraya, ni cambia a Italic.

    Es habitual en mis proyectos que después de alterar el aspecto de una etiqueta, este cambio se revierta en el evento MouseMove del formulario. Lo he intentado con este código 

    lblNueva.Font = New Font(lblNueva.Font.FontFamily, Font.Name = "Microsoft Sans Serif")

    y sólo en el momento de la ejecución me da el error: "No se controló ArgumentException" y el texto: "El valor de '-1' no es válido para 'emSize'. 'emSize' debería ser mayor que 0 y menor o igual que System.Single.MaxValue. Nombre del parámetro: emSize"

    Como no sé aún lo que es emSize, y además quiero devolverle a la fuente su tamaño de diseño, he intentado remediarlo con este código:

    lblNueva.Font = New Font(lblNueva.Font.FontFamily, Font.Name = "Microsoft Sans Serif", Font.Size = (12))

    Aunque he hecho diversas combinaciones (con o sin (), con =, con ',' ) para agregar el tamaño de la fuente, todas se marcaban de inmediato como erróneas.

    Gracias y saludos.

    martes, 23 de julio de 2013 9:19