Create diagram table shape with dashed borer and solid inner cell borders

Applies to: Nevron Diagram for .NET

How to create diagram table shape with dashed borer and solid inner cell borders?

Let's say that you want to create the following table shape with dashed outline border and solid cell borders:



To create this table shape, you can use the following piece of code:

[C#]

private void CreateTableShape()
{
    NDrawingDocument document = m_View.Document;
    m_View.GlobalVisibility.ShowPorts = false;
    m_View.Grid.Visible = false;
 
    const int rowCount = 3;
    const int colCount = 3;
 
    // Create a style sheet for cells borders
    NStyleSheet cellsStyleSheet = new NStyleSheet("CellsStyleSheet");
    NStyle.SetStrokeStyle(cellsStyleSheet, new NStrokeStyle(1, Color.Red));
    document.StyleSheets.AddChild(cellsStyleSheet);
 
    // Create and style a table shape
    NTableShape tableShape = new NTableShape();
    tableShape.ShowGrid = false;
    tableShape.CellPadding = new Nevron.Diagram.NMargins(5, 5, 10, 10);
    NStyle.SetStrokeStyle(tableShape, new NStrokeStyle(1, Color.Black, LinePattern.Dash));
 
    // Add the shape to the document's active layer
    document.ActiveLayer.AddChild(tableShape);
 
    // Init the table shape and begin updating its cells
    tableShape.InitTable(colCount, rowCount);
    tableShape.BeginUpdate();
 
    // Loop through the cells to set their cells and border
    int z = 1;
    for (int i = 0; i < rowCount; i++)
    {
        TableCellBorder cellBorders = i > 0 ? TableCellBorder.Top : TableCellBorder.None;
 
        for (int j = 0; j < colCount; j++)
        {
            NTableCell cell = tableShape[j, i];
            cell.Text = "Cell " + z.ToString();
            cell.StyleSheetName = cellsStyleSheet.Name;
            cell.Borders = j > 0 ? cellBorders | TableCellBorder.Left : cellBorders;
            z++;
        }
    }
 
    // End the table shape update and set its lacation
    tableShape.EndUpdate();
    tableShape.Location = new NPointF(100, 100);
}

[VB.NET]
Private Sub CreateTableShape()
    Dim document As NDrawingDocument = m_View.Document
    m_View.GlobalVisibility.ShowPorts = False
    m_View.Grid.Visible = False
 
    Const rowCount As Integer = 3
    Const colCount As Integer = 3
 
    ' Create a style sheet for cells borders
    Dim cellsStyleSheet As New NStyleSheet("CellsStyleSheet")
    NStyle.SetStrokeStyle(cellsStyleSheet, New NStrokeStyle(1, Color.Red))
    document.StyleSheets.AddChild(cellsStyleSheet)
 
    ' Create and style a table shape
    Dim tableShape As New NTableShape()
    tableShape.ShowGrid = False
    tableShape.CellPadding = New Nevron.Diagram.NMargins(5, 5, 10, 10)
    NStyle.SetStrokeStyle(tableShape, New NStrokeStyle(1, Color.Black, LinePattern.Dash))
 
    ' Add the shape to the document's active layer
    document.ActiveLayer.AddChild(tableShape)
 
    ' Init the table shape and begin updating its cells
    tableShape.InitTable(colCount, rowCount)
    tableShape.BeginUpdate()
 
    ' Loop through the cells to set their cells and border
    Dim z As Integer = 1
    For i As Integer = 0 To rowCount - 1
        Dim cellBorders As TableCellBorder = If(i > 0, TableCellBorder.Top, TableCellBorder.None)
 
        For j As Integer = 0 To colCount - 1
            Dim cell As NTableCell = tableShape(j, i)
            cell.Text = "Cell " + z.ToString()
            cell.StyleSheetName = cellsStyleSheet.Name
            cell.Borders = If(j > 0, cellBorders Or TableCellBorder.Left, cellBorders)
            z += 1
        Next
    Next
 
    ' End the table shape update and set its lacation
    tableShape.EndUpdate()
    tableShape.Location = New NPointF(100, 100)
End Sub


Article ID: 224, Created On: 8/6/2012, Modified: 8/6/2012