title: Hide the specific column in Print Page c#
body: <p>I want to hide the column in the print page.</p>
  
  <p>Here is the image that shows the <code>ID</code> column is still visible:</p>
  
  <p><img src="https://i.stack.imgur.com/g49ki.png" alt="enter image description here"></p>
  
  <p>I want to hide the <code>ID</code> column.</p>
  
  <p>Here is the code that i am using, I have already declared <code>this.dataGridView.Columns["ID"].Visible = false</code> , but the <code>ID</code> column is still visible.</p>
  
  <pre><code>private void PrintPreview(object sender, EventArgs e)
          {
              PrintPreviewDialog _PrintPreview = new PrintPreviewDialog();
              printDocument1.DefaultPageSettings.Landscape = true;
              _PrintPreview.Document = printDocument1;
              ((Form)_PrintPreview).WindowState = FormWindowState.Maximized;
              _PrintPreview.ShowDialog();
  
              this.dataGridView1.Columns["ID"].Visible = false;
          }
  
  private void printDocument1_BeginPrint(object sender, PrintEventArgs e)
          {
              try
              {
                  strFormat = new StringFormat();
                  strFormat.Alignment = StringAlignment.Center;
                  strFormat.LineAlignment = StringAlignment.Center;
                  strFormat.Trimming = StringTrimming.EllipsisCharacter;
  
                  arrColumnLefts.Clear();
                  arrColumnWidths.Clear();
                  iCellHeight = 0;
                  iRow = 0;
                  bFirstPage = true;
                  bNewPage = true;
  
                  iTotalWidth = 0;
  
                  foreach (DataGridViewColumn dgvGridCol in dataGridView1.Columns)
                  {
                      iTotalWidth += dgvGridCol.Width;
                  }
              }
  
              catch (Exception ex)
              {
                  MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
              }
          }
  
          private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
          {
              try
              {
                  //Set the left margin
                  int iLeftMargin = e.MarginBounds.Left;
  
                  //Set the top margin
                  int iTopMargin = e.MarginBounds.Top;
  
                  //Whether more pages have to print or not
                  bool bMorePagesToPrint = false;
  
                  int iTmpWidth = 0;
  
                  int width = 500;
  
                  int height = 90;
  
                  //For the first page to print set the cell width and header height
                  if (bFirstPage)
                  {
                      foreach (DataGridViewColumn GridCol in dataGridView1.Columns)
                      {
                          iTmpWidth = (int)(Math.Floor((double)((double)GridCol.Width / (double)iTotalWidth * (double)iTotalWidth * ((double)e.MarginBounds.Width / (double)iTotalWidth))));
  
                          iHeaderHeight = (int)(e.Graphics.MeasureString(GridCol.HeaderText, GridCol.InheritedStyle.Font, iTmpWidth).Height) + 11;
  
                          // Save width and height of headres
                          arrColumnLefts.Add(iLeftMargin);
                          arrColumnWidths.Add(iTmpWidth);
                          iLeftMargin += iTmpWidth;
                      }
                  }
  
                  //Loop till all the grid rows not get printed
                  while (iRow &lt;= dataGridView1.Rows.Count - 1)
                  {
                      DataGridViewRow GridRow = dataGridView1.Rows[iRow];
  
                      //Set the cell height
                      iCellHeight = GridRow.Height + 5;
  
                      int iCount = 0;
  
                      //Check whether the current page settings allo more rows to print
                      if (iTopMargin + iCellHeight &gt;= e.MarginBounds.Height + e.MarginBounds.Top)
                      {
                          bNewPage = true;
                          bFirstPage = false;
                          bMorePagesToPrint = true;
                          break;
                      }
  
                      else
                      {
                          if (bNewPage)
                          {
                              //Draw Header
                              e.Graphics.DrawString("Database Summary", new Font(dataGridView1.Font, FontStyle.Bold), Brushes.Black, e.MarginBounds.Left, e.MarginBounds.Top - e.Graphics.MeasureString("Database Summary", new Font(dataGridView1.Font, FontStyle.Bold), e.MarginBounds.Width).Height - 13);
  
                              String strDate = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToShortTimeString();
  
                              //Draw Date
                              e.Graphics.DrawString(strDate, new Font(dataGridView1.Font, FontStyle.Regular), Brushes.Black, e.MarginBounds.Left + (e.MarginBounds.Width - e.Graphics.MeasureString(strDate, new Font(dataGridView1.Font, FontStyle.Regular), e.MarginBounds.Width).Width), e.MarginBounds.Top - e.Graphics.MeasureString("Database Summary", new Font(new Font(dataGridView1.Font, FontStyle.Regular), FontStyle.Regular), e.MarginBounds.Width).Height - 13);
  
                              //Draw Image
                              e.Graphics.DrawImage(pb1.Image, new Rectangle(300, 0, width, height));
  
                              //Draw Columns    
                              iTopMargin = e.MarginBounds.Top;
  
                              foreach (DataGridViewColumn GridCol in dataGridView1.Columns)
                              {
                                  e.Graphics.FillRectangle(new SolidBrush(Color.Aqua), new Rectangle((int)arrColumnLefts[iCount], iTopMargin, (int)arrColumnWidths[iCount], iHeaderHeight));
  
                                  e.Graphics.DrawRectangle(Pens.Black, new Rectangle((int)arrColumnLefts[iCount], iTopMargin, (int)arrColumnWidths[iCount], iHeaderHeight));
  
                                  e.Graphics.DrawString(GridCol.HeaderText, GridCol.InheritedStyle.Font, new SolidBrush(GridCol.InheritedStyle.ForeColor), new RectangleF((int)arrColumnLefts[iCount], iTopMargin, (int)arrColumnWidths[iCount], iHeaderHeight), strFormat);
  
                                  iCount++;
                              }
  
                              bNewPage = false;
                              iTopMargin += iHeaderHeight;
                          }
  
                          iCount = 0;
  
                          //Draw Columns Contents                
                          foreach (DataGridViewCell Cel in GridRow.Cells)
                          {
                              if (Cel.Value != null)
                              {
                                  e.Graphics.DrawString(Cel.Value.ToString(), Cel.InheritedStyle.Font, new SolidBrush(Cel.InheritedStyle.ForeColor = System.Drawing.Color.Blue), new RectangleF((int)arrColumnLefts[iCount], (float)iTopMargin, (int)arrColumnWidths[iCount], (float)iCellHeight), strFormat);
                              }
  
                              //Drawing Cells Borders 
                              e.Graphics.DrawRectangle(Pens.Red, new Rectangle((int)arrColumnLefts[iCount], iTopMargin, (int)arrColumnWidths[iCount], iCellHeight));
  
                              iCount++;
                          }
                      }
  
                      iRow++;
                      iTopMargin += iCellHeight;
                  }
  
                  //If more lines exist, print another page.
                  if (bMorePagesToPrint)
                  {
                      e.HasMorePages = true;
                  }
  
                  else
                  {
                      e.HasMorePages = false;
                  }
              }
  
              catch (Exception exc)
              {
                  MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
              }
          }
  </code></pre>
  
  <p>Any help how do i fix this?</p>
  
  <p>Thank you!</p>
  
  <p>Your answer will be great appreciated!</p>