'宣言 Public Class UltraGridLayout Inherits Infragistics.Shared.KeyedSubObjectBase Implements Infragistics.Shared.IKeyedSubObject, Infragistics.Shared.IKeyedSubObjectEx, Infragistics.Win.IImageListProvider, Infragistics.Win.ISupportPresets
public class UltraGridLayout : Infragistics.Shared.KeyedSubObjectBase, Infragistics.Shared.IKeyedSubObject, Infragistics.Shared.IKeyedSubObjectEx, Infragistics.Win.IImageListProvider, Infragistics.Win.ISupportPresets
オブジェクトの DisplayLayout プロパティは、オブジェクトの外観および動作に関連するさまざまなプロパティの設定を決める UltraGridLayout オブジェクトへのアクセスに使用されます。UltraGridLayoutオブジェクトを使用すると、グリッドの複数のレイアウトを保守し必要に応じて適用することが容易になります。グリッドのレイアウトはディスク、レジストリ、またはストレージ ストリームに保存して再度利用することもできます。
UltraGridLayout オブジェクトには Appearance や Override のようなプロパティがあるため、UltraGridLayout オブジェクトにはこれらのタイプのサブオブジェクトがあり、その設定もレイアウトの一部として含まれます。ただし実際に維持される情報は、これらのプロパティの設定がどのように割り当てられたかによって異なります。プロパティがUltraGridLayoutオブジェクトの組み込みオブジェクトを使用して設定された場合、そのプロパティの設定はレイアウトの一部に含まれます。しかし、名前付きオブジェクトがコレクションからプロパティに割り当てられた場合、レイアウトにはコレクションへの参照のみが含まれ、名前付きオブジェクトの実際の設定は含まれません。(名前付きオブジェクトと組み込みオブジェクトの違いの概要については、Appearance プロパティをご覧ください。
たとえば、Layout オブジェクトの Appearance プロパティを使用して組み込みの Appearance オブジェクトの値を設定する場合は、次のようになります。
UltraGrid1.DisplayLayout.Appearance.ForeColor = vbBlue
この設定 (この場合は ForeColor) はレイアウトの一部に含まれ、他のレイアウト データと共に保存、読み込み、および適用されます。一方、名前付きオブジェクトの設定を次のように UltraGridLayout の Appearance プロパティに適用する場合を考えてみます。
UltraWinGrid1.Appearances.Add "New1"
UltraWinGrid1.Appearances("New1").ForeColor = vbBlue
UltraWinGrid1.Layout.Appearance = UltraWinGrid1.Appearances("New1")
この場合、ForeColor の設定はレイアウトの一部として維持されません。その代わりレイアウトには "New1" Appearance オブジェクトへの参照が含まれ、レイアウトが適用されるときにそのオブジェクト内に存在する設定が使用されることになります。
デフォルトではレイアウトには Appearances コレクション全体のコピーが含まれるため、デフォルト設定を使用してレイアウトが保存および再利用された場合、オブジェクトの参照時にはオブジェクトは常にコレクション内に存在することになります。ただし、UltraGridLayout オブジェクトの Load メソッドおよび Save メソッドを使用する際、レイアウトが適用されるときにコレクションが再作成されないようにすることも可能です。この場合、存在しないオブジェクトへの参照がレイアウトに含まれていれば、そのオブジェクトのプロパティのデフォルト設定が使用されます。
次のサンプルコードは、InitializeLayout イベントで UltraGridLayout のいくつかのプロパティを設定する方法を示します。
Private Sub UltraGrid1_InitializeLayout(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles UltraGrid1.InitializeLayout e.Layout.ViewStyle = Infragistics.Win.UltraWinGrid.ViewStyle.MultiBand e.Layout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy e.Layout.AutoFitStyle = AutoFitStyle.ResizeAllColumns e.Layout.MaxRowScrollRegions = 3 e.Layout.CaptionAppearance.ForeColor = Color.Red e.Layout.GroupByBox.BandLabelBorderStyle = Infragistics.Win.UIElementBorderStyle.Dotted e.Layout.GroupByBox.ShowBandLabels = Infragistics.Win.UltraWinGrid.ShowBandLabels.IntermediateBandsOnly e.Layout.Override.CellAppearance.BackColor = Color.White e.Layout.Override.CellAppearance.BackColor2 = Color.Blue e.Layout.Override.CellAppearance.BackGradientStyle = Infragistics.Win.GradientStyle.VerticalBump e.Layout.AddNewBox.Hidden = False e.Layout.AddNewBox.Style = Infragistics.Win.UltraWinGrid.AddNewBoxStyle.Compact e.Layout.AddNewBox.ButtonStyle = Infragistics.Win.UIElementButtonStyle.PopupBorderless e.Layout.AddNewBox.ButtonConnectorStyle = Infragistics.Win.UIElementBorderStyle.Dotted End Sub
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Private Sub UltraGrid1_InitializeLayout(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles ultraGrid1.InitializeLayout ' InitializeLayout gets fired for the UltraGrid's layout as well as when printing. If e.Layout.IsPrintLayout Then ' This is a print layout. When printing, use White as the background color. e.Layout.Appearance.BackColor = Color.White ' Hide the second band (band 1) when printing so rows from that band and its ' descendant bands don't show up in the print. e.Layout.Bands(1).Hidden = True Else e.Layout.Appearance.BackColor = Color.Gray End If ' Set the behaviour of tab keys in the UltraGrid. Me.UltraGrid1.DisplayLayout.TabNavigation = TabNavigation.NextCell End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { // InitializeLayout gets fired for the UltraGrid's layout as well as when printing. if ( e.Layout.IsPrintLayout ) { // This is a print layout. When printing, use White as the background color. e.Layout.Appearance.BackColor = Color.White; // Hide the second band (band 1) when printing so rows from that band and its // descendant bands don't show up in the print. e.Layout.Bands[1].Hidden = true; } else { e.Layout.Appearance.BackColor = Color.Gray; } // Set the behaviour of tab keys in the UltraGrid. this.ultraGrid1.DisplayLayout.TabNavigation = TabNavigation.NextCell; }