Как выровнять печатаемые на объекте строки? - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы