2011-05-27 16 views

Respuesta

10

Con los controles normales de VB6, lamentablemente, no puede hacer esto. Puede cambiar el color de todo el texto de un cuadro de texto/listbox/label usando .ForeColor, pero no partes de él, y eso realmente no es bueno para usted. Afortunadamente, existen dos soluciones:

  1. La primera consiste en seguir utilizando el cuadro de lista como lo tienen, además de añadir en una leyenda con la lectura de un texto rojo "- Pendiente" junto al texto que desea. No es bonito, pero puedes hacerlo funcionar.

  2. La mejor solución es familiarizarse con el control RichTextBox. Sin embargo, esto solo funcionará si tiene las versiones Professional o Enterprise de VB6. Suponiendo que lo haga, en el menú de VB6, haga clic en Proyecto -> Componentes, y luego en la nueva ventana que aparece, en la pestaña Controles, marque "Microsoft Rich TextBox Control 6.0" y luego haga clic en Aceptar. La opción RichTextBox debería aparecer en la Caja de herramientas, puede agregarla al formulario como cualquier otro objeto, y actuará como una combinación listbox/textbox ... es muy útil. Si desea documentación, check out the MSDN.

    Desafortunadamente, RichTextBox es un poco apesta en términos de cambiar el color del texto. Se puede hacer, pero no con un simple comando. Debe encontrar el texto que desea, seleccionarlo y luego establecer el color. (Esto también se aplica si usted quiere cambiar el color de todo el texto - usted tiene que seleccionar todo primero.) De todas formas, la manera de hacerlo sería:

    RichTextBox1.SelStart = RichTextBox1.Find(" - Pending")
    RichTextBox1.SelLength = 10
    RichTextBox1.SelColor = vbRed

Espero que todo esto ayude. ¡La mejor de las suertes!

0

Solo necesito mostrar un texto en una etiqueta y luego cambiar el color de una o dos letras solo.

Creé un control de etiqueta XLabel(0) y configuré .Visible = False y .Autosize = True. Luego, básicamente, estoy leyendo una cadena a la vez de una matriz y cargando nuevos controles XLabel(), uno para cada letra de la cadena.

For z = 1 To Len(a) 
    Load XLabel(z) 
    With XLabel(z) 
     .Caption = Mid(a, z, 1) 
     .Left = XLabel(z - 1).Left + XLabel(z - 1).Width 
     .BackColor = vbWhite 
     .Visible = True 
    End With 
Next z 

Dado que Autosize está activado, todas las etiquetas se colocan una cerca de la otra igual que dentro de un solo control de etiqueta.

Pero de esta manera puede modificar una sola letra de la manera que necesita.

Recuerde descargar todos los controles antes de continuar, si es que lo hace.

Cuestiones relacionadas