none
Como cambiar el tamaño de letra sin que me desactive el tipo de letra seleccionado anteriormente RRS feed

  • Pregunta

  • Alguien me puede ayudar hice un programa donde se puede modificar el texto de un textbox donde a este le puedo activar o desactivar

    - Negrita
    - Cursiva
    - Subrayado
    - Color de fuente
    - y tres tipos de letras

    Tambien le coloque 3 tipos de tamaños de letras, el problema sucede que cuando escojo un tipo de letra y luego cambio el tamaño de letra, se desactiva el tipo de letra que habia seleccionado.
    domingo, 5 de julio de 2009 19:02

Respuestas

  • Hola:

    Tampoco habría estado de más que nos hubieras indicado qué código estás ejecutando para cambiar los distintos atributos de la fuente.

    Lo normal es estos casos es guardar en una variable objeto tipo Font, declarada a nivel del propio formulario que contiene el control TextBox, los valores que en cada momento tiene el objeto Font del control TextBox. Para ello, declararías la siguiente variable:

         Private _fnt As Font

    Y en el evento Form_Load del formulario, le asignarías el valor del objeto Font del control TextBox:

         Private Sub Form1_Load( ... )

            _fnt = TextBox1.Font

         End Sub

    Ahora, cuando desees cambiar la fuente (tipo de letra), ejecutarías lo siguiente:

         ' Primero modificamos la variable objeto
         '
         _fnt = New Font("Verdana", _fnt.Size, _fnt.Style, _fnt.Unit, _fnt.GdiCharSet)

         ' Después le asignamos la fuente al control TextBox.
         '
         TextBox1.Font = _fnt

    Y cuando desees cambiar el tamaño de la fuente (el tamaño de la letra), ejecutarías ésto otro:

         ' Primero modificamos la variable objeto
         '
         _fnt = New Font(_fnt.FontFamily, 24, _fnt.Style, _fnt.Unit, _fnt.GdiCharSet)

         ' Después le asignamos la fuente al control TextBox.
         '
         TextBox1.Font = _fnt

    En definitiva, tienes que guardar en un objeto Font todos los atributos de la fuente del control TextBox, y modificar únicamente aquel que desees en un momento determinado, respetando los demás atributos establecidos actualmente. Cuando hayas modificado la variable que representa el objeto Font, es cuando tienes que asignárselo a la propiedad Font del control TextBox, para que en el texto de dicho control puedas observar las modificaciones efectuadas. ¿OK?

    Un saludo


    Enrique Martínez [MS MVP - VB]
    lunes, 6 de julio de 2009 13:48
    Moderador

Todas las respuestas

  • Tines que jugar con una instruccion if else if

    prueba esto


    Crea un proyecto y agrega un textbox y dos RadioButon al formulario y agrega el siguiente codigo

        Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
            If Me.TextBox1.ForeColor = Color.Black Then
                Me.TextBox1.ForeColor = Color.Red
    
            End If
        End Sub
    
        Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
            If Me.TextBox1.ForeColor = Color.Red Then
                Me.TextBox1.ForeColor = Color.Black
    
            End If
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.TextBox1.ForeColor = Color.Black
        End Sub

    ejecuta el programa

    selecciona un radio buton y

    Veras que si el text del textbox es negro se pondra en rojo y si el texto es rojo se pondra en negro

    ahora as lo mismo con lo demas


    Saludos.

    Melvin.
    Todo Es posible si se studia con exfuerso no importando los de mas Dios esta con nosotros y no hay mas sabiduria que la de Dios, Everything is posible if you study a lot wiht esforce , God Loves us and there isn't anybody like God.... Melvin Saludos
    domingo, 5 de julio de 2009 19:17
  • Hola:

    Tampoco habría estado de más que nos hubieras indicado qué código estás ejecutando para cambiar los distintos atributos de la fuente.

    Lo normal es estos casos es guardar en una variable objeto tipo Font, declarada a nivel del propio formulario que contiene el control TextBox, los valores que en cada momento tiene el objeto Font del control TextBox. Para ello, declararías la siguiente variable:

         Private _fnt As Font

    Y en el evento Form_Load del formulario, le asignarías el valor del objeto Font del control TextBox:

         Private Sub Form1_Load( ... )

            _fnt = TextBox1.Font

         End Sub

    Ahora, cuando desees cambiar la fuente (tipo de letra), ejecutarías lo siguiente:

         ' Primero modificamos la variable objeto
         '
         _fnt = New Font("Verdana", _fnt.Size, _fnt.Style, _fnt.Unit, _fnt.GdiCharSet)

         ' Después le asignamos la fuente al control TextBox.
         '
         TextBox1.Font = _fnt

    Y cuando desees cambiar el tamaño de la fuente (el tamaño de la letra), ejecutarías ésto otro:

         ' Primero modificamos la variable objeto
         '
         _fnt = New Font(_fnt.FontFamily, 24, _fnt.Style, _fnt.Unit, _fnt.GdiCharSet)

         ' Después le asignamos la fuente al control TextBox.
         '
         TextBox1.Font = _fnt

    En definitiva, tienes que guardar en un objeto Font todos los atributos de la fuente del control TextBox, y modificar únicamente aquel que desees en un momento determinado, respetando los demás atributos establecidos actualmente. Cuando hayas modificado la variable que representa el objeto Font, es cuando tienes que asignárselo a la propiedad Font del control TextBox, para que en el texto de dicho control puedas observar las modificaciones efectuadas. ¿OK?

    Un saludo


    Enrique Martínez [MS MVP - VB]
    lunes, 6 de julio de 2009 13:48
    Moderador