Сбой построения VB Net Graphics DrawString

#vb.net #printing #graphics

#vb.net #печать #графика

Вопрос:

Я понятия не имею, что не так с моей конструкцией во второй графике.Строка кода DrawString
Мой вопрос в том, почему построение этой строки кода ЗАВЕРШАЕТСЯ НЕУДАЧНО, а строка над ней не завершается сбоем
, это НЕУДАЧНАЯ строка кода

  e.Graphics.DrawString(strTo, 12, Brushes.Red, 45, 50)


    Private Sub pdDoc_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles pdDoc.PrintPage
    Dim fontSize As Integer = 30
    Dim labelFont As Font = New Font("Times New Roman", fontSize, FontStyle.Bold)

    Dim strTo As String = "Kitchen"
    Dim lblArray(2) As String
    lblArray(0) = "Kitchen"

    e.Graphics.DrawString(lblArray(0), labelFont, Brushes.Black, 500, 950)
    e.Graphics.DrawString(strTo, 12, Brushes.Red, 45, 50)
  

После прочтения двух ответов и вот мое обновленное ИСПРАВЛЕНИЕ ошибки в строке кода выше

     Dim labelFont As Font = New Font("Times New Roman", fontSize, FontStyle.Bold)
    Dim strTo As Object = "Kitchen"
    e.Graphics.DrawString(strTo.ToString, labelFont, Brushes.Red, 300, 300)
  

Комментарии:

1. Для дальнейшего использования, пожалуйста, всегда точно определяйте «сбой», «ошибка», «это не работает» или аналогичные

Ответ №1:

Я взял на себя смелость выровнять ваши запятые между рабочими и нет:

 e.Graphics.DrawString(lblArray(0), labelFont, Brushes.Black, 500, 950)
e.Graphics.DrawString(strTo      , 12       , Brushes.Red  , 45 , 50 )
                                   ^^^^^^^^^
  

Что это такое Font 12 ?

Комментарии:

1. Хорошо, было поздно, и я пробовал все labelFont было плохим соглашением об именах, оно было из другого проекта, где я печатал этикетки, как указывалось, термин FAIL не описывал, где и как код был нарушен В этом случае в двух местах strTo и 12. Я опубликую свое ИСПРАВЛЕНИЕ вВОПРОС спасибо

Ответ №2:

Первое DrawString в порядке, но второе неверно.

 public void DrawString (string s, System.Drawing.Font font, System.Drawing.Brush brush, float x, float y, System.Drawing.StringFormat format);
  

@CaiusJard уже определил ошибку, поэтому я уточняю подробнее.

Здесь он принимает объект шрифта, а не целое число. К 12, я думаю, вы перепутали с размером. Сначала вы можете объявить объект шрифта с:

 Dim myFont As Font = New Font("FONT NAME",12)
  

Тогда вы можете использовать myFont вместо 12.

Комментарии:

1. У меня было время, когда он вызывал построенные вспомогательные устройства, и у меня появилась плохая привычка избегать их. Теперь я понимаю, что две ошибки были с strTo и 12 ДА, я был размером вещи и не использовал код создания для определения шрифта объекта. Я опубликую свое ИСПРАВЛЕНИЕ в вопросе Спасибо за объяснение