TableDesigner.GetDesignTimeHtml 方法

定义

获取用于在设计时表示控件的 HTML。

public:
 override System::String ^ GetDesignTimeHtml();
public override string GetDesignTimeHtml ();
override this.GetDesignTimeHtml : unit -> string
Public Overrides Function GetDesignTimeHtml () As String

返回

用于在设计时表示控件的 HTML。

示例

下面的代码示例演示如何重写 方法, GetDesignTimeHtml 以便在设计图面上显示 类的行和单元格 StyledTable 。 在 块中 Try ,代码检查表是否包含任何行或单元格,如果不包含任何行或单元格,则创建一行并执行循环,为该行创建两个单元格,以及设计时在每个单元格中显示的占位符文本。 如果表不为空,但行为 ,则代码将执行相同的循环来创建和填充单元格。 Finally在 块中,代码将值返回到其原始状态。

' Override the GetDesignTimeHtml method to display
' placeholder text at design time for the 
' rows and cells of the StyledTable class.
Public Overrides Function GetDesignTimeHtml() As String
    Dim sTable As StyledTable = CType(Component, StyledTable)
    Dim designTimeHTML As String
    Dim rows As TableRowCollection = sTable.Rows
    Dim cellsWithDummyContents As ArrayList = Nothing
   
    Dim emptyTable As Boolean = rows.Count = 0
    Dim emptyRows As Boolean = False
    Dim counter As Integer = 1
    Dim numcells As Integer = 2
    
    Try     
        ' Create two cells to display
        ' in a row at design time.
        If emptyTable Then
            Dim row As TableRow = New TableRow()
            rows.Add(row)
      
            Dim i As Integer
            For i = 0 To numcells - 1
                Dim c As TableCell = New TableCell()
                c.Text = "Cell #" & counter.ToString()
                counter += 1
                rows(0).Cells.Add(c)
            Next i
        Else
            emptyRows = True
            Dim j As Integer
            For j = 0 To rows.Count - 1
                If rows(j).Cells.Count <> 0 Then
                    emptyRows = False
                    Exit For
                End If
            Next j
            If emptyRows = True Then
                Dim k As Integer
                For k = 0 To numcells - 1
                    Dim c As TableCell = New TableCell()
                    c.Text = "Cell #" & counter.ToString()
                    counter += 1
                    rows(0).Cells.Add(c)
                Next k
             End If
        End If
   
        If emptyTable = False Then
            ' If the rows and cells were defined by the user, but the
            ' cells remain empty this code defines a string to display 
            ' in them at design time.
            Dim row As TableRow
            For Each row In rows
                Dim c As TableCell
                For Each c In row.Cells
                    If ((c.Text.Length = 0) AndAlso (c.HasControls() = False)) Then
                       If cellsWithDummyContents Is Nothing Then
                           cellsWithDummyContents = New ArrayList()
                       End If
                       cellsWithDummyContents.Add(c)
                       c.Text = "Cell #" & counter.ToString()
                       counter += 1
                    End If
                Next c
            Next row
        End If
        ' Retrieve the design-time HTML for the StyledTable class.
        designTimeHTML = MyBase.GetDesignTimeHtml()

    Finally
        ' If the StyledTable was empty before the dummy text was added,
        ' restore it to that state.
        If emptyTable Then
            rows.Clear()
        Else
            ' Clear the cells that were empty before the dummy text 
            ' was added.
            If Not (cellsWithDummyContents Is Nothing) Then
                Dim c As TableCell
                For Each c In  cellsWithDummyContents
                    c.Text = [String].Empty
                Next c
            End If
            If emptyRows Then
                rows(0).Cells.Clear()
            End If
        End If
   
    End Try
    Return designTimeHTML
End Function

注解

方法 GetDesignTimeHtml 确保表至少有一行和单元格,并且单元格包含一些文本,以便在设计时显示。

适用于

另请参阅