Computechsoft Ответов: 1

Проблема печати штрих-кода в picturebox


Когда я нажимаю кнопку generate, штрих-код не печатается в pictureBox

Что я уже пробовал:

Система Импорта
Система Импорта.ИО
Система Импорта.Рисование
Система Импорта.Рисование.Печатание
Система Импорта.Окна.Формы

Общественного Класса Form1

Тусклый двоичный код в виде строки
Dim CheckSumVal Как Целое Число
Дим BINVAL как строку
Dim BINARYLength As Int64

Друг с событиями printDoc как новый PrintDocument()
Dim bmpBarcode как растровое изображение


Private Sub btnGenerate_Click(ByVal sender As Object, ByVal e As EventArgs) обрабатывает btnGenerate.Щелчок

GenerateBINARY(txtInput.Text)
GenerateBarcode(двоичный код)


Конец Подводной Лодки

Private Sub GenerateBINARY(ByVal Input As String)

Двоичный код = 0

Dim CharVal As Integer = 0
Dim CharCount As Integer = 0
Dim GrandCharCount Как Целое Число = 0
Тусклая Контрольная Сумма В Виде Целого Числа = 0

Для Каждого Элемента В Качестве Символа Во Входных Данных

Выберите Элемент Обращения
Дело Есть = " "
BINARY = BINARY & "11011001100"
Шарваль = 0
Дело Есть = "!"
BINARY = BINARY & "11001101100"
Шарваль = 1
Дело Есть = """"
BINARY = BINARY & "11001100110"
Шарваль = 2
Дело Есть = "#"
BINARY = BINARY & "10010011000"
Шарваль = 3
Дело Есть = "$"
BINARY = BINARY & "10010001100"
Шарваль = 4
Случай "%"
BINARY = BINARY & "10001001100"
Шарваль = 5
Корпус "усилителя;"
BINARY = BINARY & "10011001000"
Шарваль = 6
Дело "'"
BINARY = BINARY & "10011000100"
Шарваль = 7
Случай "("
BINARY = BINARY & "10001100100"
Шарваль = 8
Случай ")"
BINARY = BINARY & "11001001000"
Шарваль = 9
Случай "*"
BINARY = BINARY & "11001000100"
Шарваль = 10
Дело "+"
BINARY = BINARY & "11000100100"
Шарваль = 11
Случай ","
BINARY = BINARY & "10110011100"
Шарваль = 12
Случай "-"
BINARY = BINARY & "10011011100"
Шарваль = 13
Дело "."
BINARY = BINARY & "10011001110"
Шарваль = 14
Случай "/"
BINARY = BINARY & "10111001100"
Шарваль = 15
Дело "0"
BINARY = BINARY & "10011101100"
Шарваль = 16
Дело "1"
BINARY = BINARY & "10011100110"
Шарваль = 17
Дело "2"
BINARY = BINARY & "11001110010"
Шарваль = 18
Дело "3"
BINARY = BINARY & "11001011100"
Шарваль = 19
Дело "4"
BINARY = BINARY & "11001001110"
Шарваль = 20
Дело "5"
BINARY = BINARY & "11011100100"
Шарваль = 21
Дело "6"
BINARY = BINARY & "11001110100"
Шарваль = 22
Дело "7"
BINARY = BINARY & "11101101110"
Шарваль = 23
Дело "8"
BINARY = BINARY & "11101001100"
Шарваль = 24
Дело "9"
BINARY = BINARY & "11100101100"
Шарваль = 25
Случай ":"
BINARY = BINARY & "11100100110"
Шарваль = 26
Случай " ;"
BINARY = BINARY & "11101100100"
Шарваль = 27
Случай ""
BINARY = BINARY & "11011011000"
Шарваль = 30
Дело " ?"
BINARY = BINARY & "11011000110"
Шарваль = 31
Случай "@"
BINARY = BINARY & "11000110110"
Шарваль = 32
Дело "А"
BINARY = BINARY & "10100011000"
Шарваль = 33
Дело "Б"
BINARY = BINARY & "10001011000"
Шарваль = 34
Дело "С"
BINARY = BINARY & "10001000110"
Шарваль = 35
Дело "Д"
BINARY = BINARY & "10110001000"
Шарваль = 36
Дело "Е"
BINARY = BINARY & "10001101000"
Шарваль = 37
Корпус "Ф"
BINARY = BINARY & "10001100010"
Шарваль = 38
Дело "Г"
BINARY = BINARY & "11010001000"
Шарваль = 39
Дело "Н"
BINARY = BINARY & "11000101000"
Шарваль = 40
Случае "Я"
BINARY = BINARY & "11000100010"
Шарваль = 41
Корпус "Д"
BINARY = BINARY & "10110111000"
Шарваль = 42
Дело "К"
BINARY = BINARY & "10110001110"
Шарваль = 43
Буква "L"
BINARY = BINARY & "10001101110"
Шарваль = 44
Дело "М"
BINARY = BINARY & "10111011000"
Шарваль = 45
Дело "N"
BINARY = BINARY & "10111000110"
Шарваль = 46
Дело "О"
BINARY = BINARY & "10001110110"
Шарваль = 47
Дело "Р"
BINARY = BINARY & "11101110110"
Шарваль = 48
Корпус "Г"
BINARY = BINARY & "11010001110"
Шарваль = 49
Дело "Р"
BINARY = BINARY & "11000101110"
Шарваль = 50
Случай "С"
BINARY = BINARY & "11011101000"
Шарваль = 51
Дело "Т"
BINARY = BINARY & "11011100010"
Шарваль = 52
Случай "U"
BINARY = BINARY & "11011101110"
Шарваль = 53
Корпус "В"
BINARY = BINARY & "11101011000"
Шарваль = 54
Корпус "W"
BINARY = BINARY & "11101000110"
Шарваль = 55
Дело "Х"
BINARY = BINARY & "11100010110"
Шарваль = 56
Корпус "Г"
BINARY = BINARY & "11101101000"
Шарваль = 57
Корпус "З"
BINARY = BINARY & "11101100010"
Шарваль = 58
Случай "["
BINARY = BINARY & "11100011010"
Шарваль = 59
Случай "\"
BINARY = BINARY & "11101111010"
Шарваль = 60
Случай "]"
BINARY = BINARY & "11001000010"
Шарваль = 61
Дело "^"
BINARY = BINARY & "11110001010"
Шарваль = 62
Случай "_"
BINARY = BINARY & "10100110000"
Шарваль = 63
Дело "`"
BINARY = BINARY & "10100001100"
Шарваль = 64
Дело "а"
BINARY = BINARY & "10010110000"
Шарваль = 65
Дело "б"
BINARY = BINARY & "10010000110"
Шарваль = 66
Дело "с"
BINARY = BINARY & "10000101100"
Шарваль = 67
Дело "д"
BINARY = BINARY & "10000100110"
Шарваль = 68
Дело "е"
BINARY = BINARY & "10110010000"
Шарваль = 69
Корпус "Ф"
BINARY = BINARY & "10110000100"
Шарваль = 70
Дело "г"
BINARY = BINARY & "10011010000"
Шарваль = 71
Дело "Н"
BINARY = BINARY & "10011000010"
Шарваль = 72
Случае "я"
BINARY = BINARY & "10000110100"
Шарваль = 73
Корпус "Д"
BINARY = BINARY & "10000110010"
Шарваль = 74
Дело "к"
BINARY = BINARY & "11000010010"
Шарваль = 75
Буква "L"
BINARY = BINARY & "11001010000"
Шарваль = 76
Дело "м"
BINARY = BINARY & "11110111010"
Шарваль = 77
Дело "n"
BINARY = BINARY & "11000010100"
Шарваль = 78
Дело "о"
BINARY = BINARY & "10001111010"
Шарваль = 79
Дело "Р"
BINARY = BINARY & "10100111100"
Шарваль = 80
Корпус "Г"
BINARY = BINARY & "10010111100"
Шарваль = 81
Дело "Р"
BINARY = BINARY & "10010011110"
Шарваль = 82
Случай "с"
BINARY = BINARY & "10111100100"
Шарваль = 83
Дело "Т"
BINARY = BINARY & "10011110100"
Шарваль = 84
Случай "u"
BINARY = BINARY & "10011110010"
Шарваль = 85
Корпус "в"
BINARY = BINARY & "11110100100"
Шарваль = 86
Корпус "w"
BINARY = BINARY & "11110010100"
Шарваль = 87
Дело "х"
BINARY = BINARY & "11110010010"
Шарваль = 88
Корпус "Г"
BINARY = BINARY & "11011011110"
Шарваль = 89
Корпус "з"
BINARY = BINARY & "11011110110"
Шарваль = 90
Случай "{"
BINARY = BINARY & "11110110110"
Шарваль = 91
Дело "|"
BINARY = BINARY & "10101111000"
Шарваль = 92
Случай "}"
BINARY = BINARY & "10100011110"
Шарваль = 93
Дело "~"
BINARY = BINARY & "10001011110"
Шарваль = 94
Конец Выбрать
CharCount = CharCount + 1
GrandCharCount = CharVal * CharCount
Контрольная Сумма = Контрольная Сумма + GrandCharCount

Следующий

'Как код B
Контрольная Сумма = Контрольная Сумма + 104
- Достань остальное.
CheckSumVal = Контрольная Сумма Mod 103

- Установите его на ноль, прежде чем мы его сгенерируем
BINVAL = 0
GenerateCheckSum(Контрольная Сумма)

- Начинай
BINARY = "00011010010000" & BINARY
- Конец
BINARY = BINARY & BINVAL & "1100011101011000"
'

BINARYLength = 0
Для каждого копания в виде строки в двоичном коде
CharCount = CharCount + 1
Следующий

Конец Подводной Лодки

Private Sub GenerateCheckSum(ByVal Dig As Integer)

Выберите Чехол Копать
Дело "0"
BINVAL = "11011001100"
Дело "1"
BINVAL = "11001101100"
Дело "2"
BINVAL = "11001100110"
Дело "3"
BINVAL = "10010011000"
Дело "4"
BINVAL = "10010001100"
Дело "5"
BINVAL = "10001001100"
Дело "6"
BINVAL = "10011001000"
Дело "7"
BINVAL = "10011000100"
Дело "8"
BINVAL = "10001100100"
Дело "9"
BINVAL = "11001001000"
Дело "10"
BINVAL = "11001000100"
Дело "11"
BINVAL = "11000100100"
Дело "12"
BINVAL = "10110011100"
Дело "13"
BINVAL = "10011011100"
Дело "14"
BINVAL = "10011001110"
Дело "15"
BINVAL = "10111001100"
Дело "16"
BINVAL = "10011101100"
Дело "17"
BINVAL = "10011100110"
Дело "18"
BINVAL = "11001110010"
Дело "19"
BINVAL = "11001011100"
Дело "20"
BINVAL = "11001001110"
Дело "21"
BINVAL = "11011100100"
Дело "22"
BINVAL = "11001110100"
Дело "23"
BINVAL = "11101101110"
Дело "24"
BINVAL = "11101001100"
Дело "25"
BINVAL = "11100101100"
Дело "26"
BINVAL = "11100100110"
Дело "27"
BINVAL = "11101100100"
Дело "28"
BINVAL = "11100110100"
Дело "29"
BINVAL = "11100110010"
Дело "30"
BINVAL = "11011011000"
Дело "31"
BINVAL = "11011000110"
Дело "32"
BINVAL = "11000110110"
Дело "33"
BINVAL = "10100011000"
Дело "34"
BINVAL = "10001011000"
Дело "35"
BINVAL = "10001000110"
Дело "36"
BINVAL = "10110001000"
Дело "37"
BINVAL = "10001101000"
Дело "38"
BINVAL = "10001100010"
Дело "39"
BINVAL = "11010001000"
Дело "40"
BINVAL = "11000101000"
Дело "41"
BINVAL = "11000100010"
Дело "42"
BINVAL = "10110111000"
Дело "43"
BINVAL = "10110001110"
Дело "44"
BINVAL = "10001101110"
Дело "45"
BINVAL = "10111011000"
Дело "46"
BINVAL = "10111000110"
Дело "47"
BINVAL = "10001110110"
Дело "48"
BINVAL = "11101110110"
Дело "49"
BINVAL = "11010001110"
Дело "50"
BINVAL = "11000101110"
Дело "51"
BINVAL = "11011101000"
Дело "52"
BINVAL = "11011100010"
Дело "53"
BINVAL = "11011101110"
Дело "54"
BINVAL = "11101011000"
Дело "55"
BINVAL = "11101000110"
Дело "56"
BINVAL = "11100010110"
Дело "57"
BINVAL = "11101101000"
Дело "58"
BINVAL = "11101100010"
Дело "59"
BINVAL = "11100011010"
Дело "60"
BINVAL = "11101111010"
Дело "61"
BINVAL = "11001000010"
Дело "62"
BINVAL = "11110001010"
Дело "63"
BINVAL = "10100110000"
Дело "64"
BINVAL = "10100001100"
Дело "65"
BINVAL = "10010110000"
Дело "66"
BINVAL = "10010000110"
Дело "67"
BINVAL = "10000101100"
Дело "68"
BINVAL = "10000100110"
Дело "69"
BINVAL = "10110010000"
Корпус "70"
BINVAL = "10110000100"
Дело "71"
BINVAL = "10011010000"
Дело "72"
BINVAL = "10011000010"
Дело "73"
BINVAL = "10000110100"
Дело "74"
BINVAL = "10000110010"
Дело "75"
BINVAL = "11000010010"
Дело "76"
BINVAL = "11001010000"
Дело "77"
BINVAL = "11110111010"
Дело "78"
BINVAL = "11000010100"
Дело "79"
BINVAL = "10001111010"
Дело "80"
BINVAL = "10100111100"
Дело "81"
BINVAL = "10010111100"
Дело "82"
BINVAL = "10010011110"
Дело "83"
BINVAL = "10111100100"
Дело "84"
BINVAL = "10011110100"
Дело "85"
BINVAL = "10011110010"
Дело "86"
BINVAL = "11110100100"
Дело "87"
BINVAL = "11110010100"
Дело "88"
BINVAL = "11110010010"
Дело "89"
BINVAL = "11011011110"
Дело "90"
BINVAL = "11011110110"
Дело "91"
BINVAL = "11110110110"
Дело "92"
BINVAL = "10101111000"
Дело "93"
BINVAL = "10100011110"
Дело "94"
BINVAL = "10001011110"

Конец Выбрать

Конец Подводной Лодки

Private Sub GenerateBarcode(ByVal Input As String)

Dim num как целое число = 0
Для каждого из них в виде строки на входе
Нум = Нум + cboSize.Текст
Следующий

Dim rec как новый прямоугольник(1, 1, num, cboLength.Text)
Дим img В качестве нового растрового изображения(число, преобразовать.ToInt32(cbol. Text))

Dim count As Integer = 0
Тусклая длина в виде целого числа = 0

Dim aBlackPen как новая ручка(цвет.Черный)
Dim aWhitePen как новая ручка(цвет.Белый)

аблакпен.Ширина = cboSize.Текст
немного погодя.Ширина = cboSize.Текст

длина = длина + cboLength.Текст

Для каждого элемента в виде строки во входных данных
счетчик = счетчик + cboSize.Текст

Если item = 1, то
пикбаркод.CreateGraphics.DrawLine(aBlackPen, count, 1, count, length)
Еще
пикбаркод.CreateGraphics.DrawLine(aWhitePen, count, 1, count, length)
Конец, Если
Следующий

пикбаркод.DrawToBitmap(img, rec)

bmpBarcode = ИМГ

Конец Подводной Лодки


Private Sub btnClear_Click(ByVal sender As Object, ByVal e As EventArgs) обрабатывает btnClear.Щелчок
пикбаркод.Изображение = Ничего
Конец Подводной Лодки

Private Sub PrintImage(ByVal sender As Object, ByVal e As System.Рисование.Печатание.PrintPageEventArgs) обрабатывает printDoc.PrintPage

e.графика.Функция drawImage(bmpBarcode, Эл.MarginBounds.Слева, e.MarginBounds.Top)

Конец Подводной Лодки

Private Sub btnPrint_Click(ByVal sender As Object, ByVal e As EventArgs) обрабатывает btnPrint.Щелчок


"Распечатайте штрих-код в указанном положении
'GenerateBarcode(BINARY, e.Graphics, New PointF(50, 50))

"Если в документе больше страниц
''ми.HasMorePages=True
'e.HasMorePages = False

printDoc.Печать()

Конец Подводной Лодки

Частная Субформа Form1_Load_1(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает MyBase.Load
пикбаркод.BackColor = Цвет.Белый

Дим Размер Шрифта Как Целое Число = 0
Dim LengthOfBarcode As Integer = 10

FontSize = 1
Делайте До Тех Пор, Пока FontSize = 72
cboSize.Предметы.Добавить(Размер Шрифта)
FontSize = FontSize + 1
Петля

Делайте Это До Тех Пор, Пока LengthOfBarcode = 110
cboLength.Предметы.Добавить(LengthOfBarcode)
LengthOfBarcode = LengthOfBarcode + 10
Петля

cboSize.SelectedIndex = 0
cboLength.SelectedIndex = 9
Конец Подводной Лодки

'Частная Суб GenerateBarcode(Бывал Ввода Как Строку, Бывал Г Как Графика, Бывал POS, Как PointF)

'Dim LineWidth As Single = Convert.ToSingle(cboSize.Text)
'Dim LineHeight As Single = Convert.ToSingle(cbol. Text)
'' Создание нового растрового изображения
- Тусклое черное перо, как новый рисунок.Ручка(Цветная.Black, LineWidth) ' ручка для черных линий

'G. FillRectangle(Кисти.Белый, Пос.X, Поз.Y, Ширина Линии * Вход.Длина, Высота Линии)
'Дим приемник как один = поз.Х

'Для IPO как целое число = 0 для ввода.Длина - 1
'Если Input(iPos) = "1"c, то' рисуйте только черные линии
'G. DrawLine(penBlack, rx, Pos.Y, rx, Pos.Y + LineHeight)
- Конец, Если
'rx += ширина линии
- Следующий
-Конец Субмарины

'Частная суб команде printpage(как byval отправителя как объект, как byval E Как системы.Рисование.Печатание.PrintPageEventArgs)

''Печать штрих-кода в указанном положении
'GenerateBarcode(BINARY, e.Graphics, New PointF(50, 50))

- Если в документе больше страниц
''е.HasMorePages=Истина
'e.HasMorePages = False

-Конец Субмарины

End Класса

Richard MacCutchan

Пожалуйста, отредактируйте свой вопрос, правильно отформатируйте код и удалите все части, которые не имеют отношения к этому вопросу. Не просто сбрасывайте свою программу, как описано выше, и не ждите, что кто-то отладит ее для вас.

1 Ответов

Рейтинг:
8

Patrice T

Используйте отладчик, чтобы увидеть, что делает ваш код. Убедитесь, что он пытается заполнить поле picturebox, убедитесь, что есть код для печати.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
Visual Basic / Visual Studio Video Tutorial - Базовая Отладка - YouTube[^]
Visual Basic .NET programming for Beginners - точки останова и средства отладки[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.