Reports for WinForms | ComponentOne
Getting Started with Reports for WinForms / Getting Started with Printing and Previewing / Creating Tables / Creating a Table with Three Columns and Rows / Creating Borders Around Rows and Columns in Your Table
In This Topic
    Creating Borders Around Rows and Columns in Your Table
    In This Topic

    This topic demonstrates how to create distinct borders around a row and a column by using the LineDef class. This topic assumes you already have a table with three columns and three rows.

    1. The following code should already exist in your source file:

      To write code in Visual Basic

      Visual Basic
      Copy Code
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load    
      
          ' Make a table.    
          Dim table As C1.C1Preview.RenderTable = New C1.C1Preview.RenderTable(Me.C1PrintDocument1)    
          table.Style.GridLines.All = New C1.C1Preview.LineDef(Color.DarkGray)
      
          Dim r As Integer = 3    
          Dim c As Integer = 3    
          Dim row As Integer    
          Dim col As Integer    
          For row = 0 To r - 1 Step +1    
              For col = 0 To c - 1 Step +1    
                  Dim celltext As C1.C1Preview.RenderText = New C1.C1Preview.RenderText(Me.C1PrintDocument1)
      
                  ' Add empty cells.     
                  celltext.Text = String.Format("", row, col)    
                  table.Cells(row, col).RenderObject = celltext    
              Next    
          Next
      
          ' Generate the document.     
          Me.C1PrintDocument1.Body.Children.Add(table)    
          Me.C1PrintDocument1.Generate()    
      End Sub
      

      To write code in C#

      C#
      Copy Code
      private void Form1_Load(object sender, System.EventArgs e)    
      {    
              // Make a table.     
          C1.C1Preview.RenderTable table = new C1.C1Preview.RenderTable(this.c1PrintDocument1);   
          table.Style.GridLines.All = new C1.C1Preview.LineDef(Color.DarkGray);
      
          const int r = 3;    
          const int c = 3;    
          for (int row = 0; row < r; ++row)    
          {    
              for (int col = 0; col < c; ++col)    
              {    
              C1.C1Preview.RenderText celltext = new C1.C1Preview.RenderText(this.c1PrintDocument1);    
                  celltext.Text = string.Format("", row, col);
      
                  // Add empty cells.     
                  table.Cells[row, col].RenderObject = celltext;    
              }    
          }
      
          // Generate the document.     
          this.c1PrintDocument1.Body.Children.Add(table);    
          this.c1PrintDocument1.Generate();    
      }
      
    2. Add the following code to your project to make the table's width and height fifteen centimeters long:

      To write code in Visual Basic

      Visual Basic
      Copy Code
      table.Height = New C1.C1Preview.Unit(15, C1.C1Preview.UnitTypeEnum.Cm)    
      table.Width = New C1.C1Preview.Unit(15, C1.C1Preview.UnitTypeEnum.Cm)
      

      To write code in C#

      C#
      Copy Code
      table.Height = new C1.C1Preview.Unit(15, C1.C1Preview.UnitTypeEnum.Cm);    
      table.Width = new C1.C1Preview.Unit(15, C1.C1Preview.UnitTypeEnum.Cm);
      
    3. Add the following code to your project to assign a new instance of the LineDef class to the borders of the third row as follows (note that the constructor we use specifies that the new border will be red and 2 points wide):

      To write code in Visual Basic

      Visual Basic
      Copy Code
      table.Rows(2).Style.Borders.All = New C1.C1Preview.LineDef("2pt", Color.Red)
      

      To write code in C#

      C#
      Copy Code
      table.Rows[2].Style.Borders.All = new C1.C1Preview.LineDef("2pt", Color.Red);
      
    4. Assign a new instance of the LineDef class to the borders of the first column as follows (note that the constructor we use specifies that the new border will be blue and 6 points wide):

      To write code in Visual Basic

      Visual Basic
      Copy Code
      table.Cols(0).Style.Borders.All = New C1.C1Preview.LineDef("6pt", Color.Blue)
      

      To write code in C#

      C#
      Copy Code
      table.Cols[0].Style.Borders.All = new C1.C1Preview.LineDef("6pt", Color.Blue);
      

    Run the program and observe the following:

    Your borders will appear similar to the table below at run time: