Как выровнять печатаемые на объекте строки? - Visual Basic .NET
Формулировка задачи:
Всем здравствуйте.
Как видно, все строки выровнены по левому краю. Как выровнять их по правому краю? Как выровнять их по центру?
Решение задачи: «Как выровнять печатаемые на объекте строки?»
textual
Листинг программы
'(на чем рисовать, начальная Х, начальная У, позиционирование по горизонтали) Private Sub DrawMetrics(ByVal tObject As Object, Optional ByVal pX As Integer = 0, Optional ByVal pY As Integer = 0, Optional ByVal Align As System.Drawing.ContentAlignment = ContentAlignment.TopLeft) Dim gr As Graphics Dim str As String Dim val As Single Dim size As SizeF Dim font As Font Dim i, ti, MaxWidth, tSpace, y As Integer Dim br As New SolidBrush(Color.Red) font = New Font("Microsoft Sans Serif", 20, System.Drawing.FontStyle.Bold) gr = tObject.CreateGraphics ti = 10 'кол-во маркеров val = -25 tSpace = 5 'расстояние между блоками текста '#Region "MaxWidth" 'если MaxWidth используется в дальнейшем MaxWidth = 0 For i = 0 To ti str = Format(val, "0.00") size = gr.MeasureString(str, font) If size.Width > MaxWidth Then MaxWidth = size.Width val += 5 Next i val = -25 '#End Region '"MaxWidth" gr.DrawLine(Pens.Black, pX, 0, pX, tObject.Height) 'это просто для отрисовки рХ. можно потом убрать For i = 0 To ti str = Format(val, "0.00") size = gr.MeasureString(str, font) Select Case Align Case ContentAlignment.TopLeft, ContentAlignment.MiddleLeft, ContentAlignment.BottomLeft 'выравнивание по левому краю gr.DrawString(str, font, br, pX, pY + y) 'справа от рХ 'gr.DrawString(str, font, br, pX - MaxWidth \ 2, pY + y) 'на рХ 'gr.DrawString(str, font, br, pX - MaxWidth, pY + y) 'слева от рХ Case ContentAlignment.TopCenter, ContentAlignment.MiddleCenter, ContentAlignment.BottomCenter 'выравнивание по центру gr.DrawString(str, font, br, pX + (MaxWidth - size.Width) \ 2, pY + y) 'справа от рХ 'gr.DrawString(str, font, br, pX - size.Width \ 2, pY + y) 'на рХ 'gr.DrawString(str, font, br, pX - size.Width, pY + y) 'слева от рХ Case ContentAlignment.TopRight, ContentAlignment.MiddleRight, ContentAlignment.BottomRight 'выравнивание по правому краю gr.DrawString(str, font, br, pX + MaxWidth - size.Width, pY + y) 'справа от рХ 'gr.DrawString(str, font, br, pX + MaxWidth \ 2 - size.Width, pY + y) 'на рХ 'gr.DrawString(str, font, br, pX - size.Width, pY + y) 'слева от рХ End Select y += size.Height + tSpace val += 5 Next i gr.Dispose() End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д