C# Генерация штрих-кода из таблицы данных в графический блок - PullRequest
0 голосов
/ 17 марта 2020

Можно ли создать штрих-код из столбца, выбранного в DataGridView?

Я хочу показать ISBN в виде штрих-кода в PictureBox enter image description here

Вот мой код

private void GunaDataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
  BarcodeWriter writer = new BarcodeWriter() { Format = BarcodeFormat.EAN_13 };
  string txtBarcode = gunaDataGridView1[2, e.RowIndex].Value.ToString();
  picBarcode = writer.Write(txtBarcode);

  lblBarcode.Text = gunaDataGridView1[2, e.RowIndex].Value.ToString();
  lblBookTitle.Text = gunaDataGridView1[3, e.RowIndex].Value.ToString();
  lblISBN.Text = gunaDataGridView1[4, e.RowIndex].Value.ToString();
  lblCategory.Text = gunaDataGridView1[5, e.RowIndex].Value.ToString();
  lblGenre.Text = gunaDataGridView1[6, e.RowIndex].Value.ToString();
  lblMediaType.Text = gunaDataGridView1[7, e.RowIndex].Value.ToString();
  lblLanguage.Text = gunaDataGridView1[8, e.RowIndex].Value.ToString();
  lblAuthor.Text = gunaDataGridView1[9, e.RowIndex].Value.ToString();
  lblPublisher.Text = gunaDataGridView1[10, e.RowIndex].Value.ToString();
  lblPrice.Text = gunaDataGridView1[11, e.RowIndex].Value.ToString();
}

Я использую расширение ZXing. Net для создания штрих-кода.

Я пробовал

BarcodeWriter writer = new BarcodeWriter() { Format = BarcodeFormat.EAN_13 };
string txtBarcode = gunaDataGridView1[2, e.RowIndex].Value.ToString();
picBarcode = writer.Write(txtBarcode);

Но это дает мне ошибку

Не удается неявно преобразовать тип 'System.Drawing.Bitmap' в 'System. Windows .Forms.PictureBox'

Я также попробовал код

picBarcode = writer.Write(gunaDataGridView1[4, e.RowIndex].Value.ToString());

Но он все еще не работает.

1 Ответ

1 голос
/ 17 марта 2020

Вы не можете установить PictureBox напрямую, вам нужно установить его Image Свойство

picBarcode.Image = <your image> 

Вероятно

picBarcode.Image = writer.Write(gunaDataGridView1[4, e.RowIndex].Value.ToString());

Также не забудьте Dispose, если вы устанавливая его более одного раза (для очистки ресурсов GDI ), вы можете добиться этого short-hand , используя условный оператор null и Dispose() метод

picBarcode.Image?.Dispose();
picBarcode.Image = <Your Image>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...