8
votes

I am creating a program that generates a bar code and then prints the shipping labels.

I have a function that allows the user to upload a spreadsheet into the datagrid view. One of the column names is "Tracking Number".

I would like to be able to loop through each cell that has a tracking number and then generate a barcode into a a new cell in a column called "barcode".

I understand there is a loop function for this but I have never used it before.

The code that generates the barcode is the following , it calls two classes:

 Image barc = Rendering.MakeBarcodeImage(txtTrack.Text, int.Parse(txtWidth.Text), true);
 pictBarcode.Image = barc;

Any Help would be much appreciated. I will happily answer any other questions.

2
I'm a little fuzzy on your exact question. Are you having trouble with displaying the image? If so, Is the column that's supposed to display the barcode image, a DataGridViewImageColumn? or do you want help with looping through the DataGridView? - Isuru

2 Answers

22
votes

To iterate through every cell, you can use foreach loops

foreach(DataGridViewRow row in yourDataGridView.Rows)
{
    foreach(DataGridViewCell cell in row.Cells)
    {
        //do operations with cell
    }
}
2
votes

You can loop through a DataGridView using the following:

foreach (DataGridViewRow row in dgvNameOfYourGrid.Rows)
{
    if (row["Tracking Number"].ToString != "")
    {
        string trackingNumber = row.Cells["Tracking Number"].ToString();

        // do stuff with the tracking number
    }
}

But to display the barcode in another cell you will need to convert it to a DataGridViewImageCell (or preferable the whole column into a DataGridViewImageColumn).