Principales respuestas
Cambiar de color parte de una cadena

Pregunta
-
Respuestas
-
Es un poco chapuza pero igual te puede servir.
Si dejas el Text del Label vacío y pones el texto a mostrar por ejemplo en la propiedad Tag, podrías personalizarlo desde el evento Paint:
Private Sub Label1_Paint(sender As Object, e As PaintEventArgs) Handles Label1.Paint Dim label As Label = sender Dim texto As String = label.Tag.ToString() Dim space As Integer = texto.LastIndexOf(" ") Dim cadena1 As String = IIf(space>0, texto.Substring(0,space + 1), texto) Dim cadena2 As String = IIf(space > 0, texto.Substring(space + 1), "") Dim width As Integer = e.Graphics.MeasureString(cadena1, label.Font).Width Dim rect As New Rectangle(e.ClipRectangle.X, e.ClipRectangle.Y, width, e.ClipRectangle.Height) TextRenderer.DrawText(e.Graphics, cadena1, label.Font, rect, label.ForeColor) If Not String.IsNullOrEmpty(cadena2) Then rect.X += width Dim font As New Font(label.Font.FontFamily, label.Font.Size + 2, label.Font.Style) rect.Width = e.Graphics.MeasureString(cadena2, font).Width TextRenderer.DrawText(e.Graphics, cadena2, font, rect, Color.Red) End If End Sub
Este ejemplo coge el texto a partir del último espacio y lo escribe en rojo con una fuente mayor.
Píldoras .NET
Artículos, tutoriales y ejemplos de código .NETPíldoras JS
Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...- Marcado como respuesta JETET miércoles, 30 de diciembre de 2015 18:22
Todas las respuestas
-
Con un Label no puedes, el control Label no tiene esa prestación. Tendrías que sustituir el label por otro control (típicamente un custom control o un user control), o bien usar dos labels uno junto al otro y escribir la parte correspondiente en cada uno de ellos.
-
-
-
Hola:
Por cierto, hace mucho tiempo que Microsoft no pone componentes nuevos en sus nuevas versiones de Visual Stduio, siempre están los mismos, a parte que el 2012, 2013 y 2015 basicamente es el mismo con cosas internas mejoradas que no se notan mucho.
Haber si espabilan y ponen algo completamente nuevo y útil para el 2018 por ahí.
Detalles como estos para ahorra mucho tiempo.
http://www.ucancode.net/CSharp_Tutorial_GDI+_Gauge_Source_Code.htm
http://www.codeproject.com/Articles/20341/Aqua-Gauge
Y más funciones útiles para no estar con terceros, y esos terceros avandones sus creaciones dejándolo incompatible con las nuevas versiones de VS .net.
http://electronica-pic.blogspot.com
-
Es un poco chapuza pero igual te puede servir.
Si dejas el Text del Label vacío y pones el texto a mostrar por ejemplo en la propiedad Tag, podrías personalizarlo desde el evento Paint:
Private Sub Label1_Paint(sender As Object, e As PaintEventArgs) Handles Label1.Paint Dim label As Label = sender Dim texto As String = label.Tag.ToString() Dim space As Integer = texto.LastIndexOf(" ") Dim cadena1 As String = IIf(space>0, texto.Substring(0,space + 1), texto) Dim cadena2 As String = IIf(space > 0, texto.Substring(space + 1), "") Dim width As Integer = e.Graphics.MeasureString(cadena1, label.Font).Width Dim rect As New Rectangle(e.ClipRectangle.X, e.ClipRectangle.Y, width, e.ClipRectangle.Height) TextRenderer.DrawText(e.Graphics, cadena1, label.Font, rect, label.ForeColor) If Not String.IsNullOrEmpty(cadena2) Then rect.X += width Dim font As New Font(label.Font.FontFamily, label.Font.Size + 2, label.Font.Style) rect.Width = e.Graphics.MeasureString(cadena2, font).Width TextRenderer.DrawText(e.Graphics, cadena2, font, rect, Color.Red) End If End Sub
Este ejemplo coge el texto a partir del último espacio y lo escribe en rojo con una fuente mayor.
Píldoras .NET
Artículos, tutoriales y ejemplos de código .NETPíldoras JS
Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...- Marcado como respuesta JETET miércoles, 30 de diciembre de 2015 18:22
-