none
ERROR CON MEASURESTRING? RRS feed

  • Pregunta

  • Hola a todos. Intento dar formato a un texto proveniente de un RichTextBox para imprimirlo. Puede tener -en un mismo renglón- varios Font. Quiero medir el ancho que ocupa cada letra e ir sumándolo mientras quepa en un renglón:

    xPos = xPos + e.Graphics.MeasureString(SChar, printFont, 0, StrFormat).Width

    donde SChar contiene cada letra del string total; printFont es el Font de cada letra; el "CERO" es necesario y puede ser cualquier valor, y StrFormat es el formato definido (de acuerdo con lo indicado en http://msdn.microsoft.com/es-es/library/ms142108(v=vs.110).aspx) por la expresión

    dim StrFormat As StringFormat = StringFormat.GenericTypographic

    Adicionalmente, siempre conforme al requerimiento indicado en el artículo sobre MeasureString:

    e.Graphics.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias

    Funciona correctamente con cualquier símbolo, a excepción del espacio (" "), ya que cuando el Font es MonoEspacio para todo el string del RichTextBox, el ancho del espacio es la mitad del ancho de cualquier otra letra o símbolo para el mismo Font (por ejemplo "Courier New 12")

    Se trata de un error de VS.net? (uso VS2013)

     

    • Cambiado Enrique M. Montejo jueves, 25 de septiembre de 2014 15:46 Pregunta relacionada con controles de Windows Forms.
    lunes, 22 de septiembre de 2014 22:16