次の方法で共有


TableDesigner クラス

Table Web サーバー コントロールのデザイン時の動作を拡張します。

この型のすべてのメンバの一覧については、TableDesigner メンバ を参照してください。

System.Object
   System.ComponentModel.Design.ComponentDesigner
      System.Web.UI.Design.HtmlControlDesigner
         System.Web.UI.Design.ControlDesigner
            System.Web.UI.Design.WebControls.TableDesigner

Public Class TableDesigner
   Inherits ControlDesigner
[C#]
public class TableDesigner : ControlDesigner
[C++]
public __gc class TableDesigner : public ControlDesigner
[JScript]
public class TableDesigner extends ControlDesigner

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

使用例

[Visual Basic] StyledTableDesigner という名前のデザイナ クラスを TableDesigner クラスから継承して作成するコード例を次に示します。このクラスは、デザイン時に、 Table クラスから継承したクラスに 2 つのセルを表示するために使われます。

 
' Create a class, named StyledTableDesigner,
' that derives from the TableDesigner class.
' This class displays a class named StyledTable
' at design time.
Public Class StyledTableDesigner
   Inherits TableDesigner
   
   ' 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

End Class

[Visual Basic] DesignerAttribute を使用して StyledTableDesigner クラスを StyledTable クラスに関連付け、デザイン時に表示されるようにするコード例を次に示します。

 
' Create a class that uses the StyledTableDesigner
' class to display its contents at design time.
    <Designer("Examples.AspNet.Design.StyledTableDesigner", "TableDesigner")> _
    Public Class StyledTable
 Inherits Table 
   

   Private tableStyle As Style = New Style()
   
   Public Sub New()
      tableStyle.BackColor = Color.LightBlue
      tableStyle.BorderColor = Color.Black
      
      CellSpacing = 4
      CellPadding = 0
      GridLines = GridLines.None
      BorderWidth = Unit.Point(1)
      Width = Unit.Percentage(100)
      Height = Unit.Percentage(100)

   End Sub
    End Class

[C#, C++, JScript] C#、C++、および JScript のサンプルはありません。Visual Basic のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Web.UI.Design.WebControls

プラットフォーム: Windows 2000, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Design (System.Design.dll 内)

参照

TableDesigner メンバ | System.Web.UI.Design.WebControls 名前空間 | Table