Хорошо, вот код, который работает так, как я хочу, используя MeasureString.Строка печатается дважды.Один раз с помощью одного вызова DrawString.Второй раз, символ за символом в цикле.Мне нужно было, чтобы две строки выглядели одинаково, но у меня были проблемы с получением правильного горизонтального положения каждого символа при рисовании второй строки.Вы можете вставить этот код в событие Paint формы, чтобы попробовать его (установите шрифт формы Consolas или другой шрифт фиксированной ширины):
Dim i As Single
Dim sf As StringFormat
Dim String1 As String = "Here is out test string"
Dim CharSizeF As SizeF
sf = StringFormat.GenericTypographic
CharSizeF = e.Graphics.MeasureString(String1, Me.Font, 10000, sf)
CharSizeF.Width /= String1.Length
e.Graphics.DrawString(String1, Me.Font, Brushes.Black, 0, 0, sf)
For Each c As Char In String1
e.Graphics.DrawString(c.ToString, Me.Font, Brushes.Black, i * CharSizeF.Width, CharSizeF.Height, sf)
i += 1
Next
Microsoftпомог:GenericTypographic.Также убедитесь, что TextRenderingHint для графики имеет значение AntiAlias.