ホーム | 機能紹介 | ドキュメント | ダウンロード |
色・フォント・アライメントなどの設定色・フォント・アライメントなどの設定は、セッティングというオブジェクトに対して行います。 UTable内には、セッティングを持つ要素がいくつかあり、それぞれ固有のスコープを持っています。 セッティングを持つ要素を以下に示します。
例えば、テーブル全体のフォントを設定したいといった場合、 テーブルのセッティングに対して設定します。 ある特定のフィールドだけ特殊なフォントを用いたいといった場合は、 そのフィールドのセッティングに設定します。 設定内容が衝突した場合、優先度の高いものが採用されます。 例えば、フィールドとテーブルそれぞれのセッティングにフォントの設定がなされていた場合は、 フィールドのセッティングが持つフォントが採用されます。 これらの要素のうち、テーブルだけはグローバルセッティング(CGlobalSetting)という特殊なセッティングを持っています。 他の要素は全て、通常のセッティング(CSetting)を持ちます。 設定項目の中には、グローバルセッティングにしかないものがあります。 通常のセッティング通常のセッティングを持つ要素は必ず次のプロパティとメソッドを持ちます。
要素が作成された直後は、その要素はセッティングを持っていません。 セッティングを作成するには、Settingプロパティを参照します。 Field.Setting.Font = font 'フィールドのセッティングが作られ、フォントが設定される CSettingクラスのコンストラクタでセッティングを作成することもできます。 また、複数の要素で、セッティングを共有することもできます。 Dim setting As New UTable.CSetting() setting.Font = font Field1.Setting = setting Field2.Setting = setting 要素がセッティングを持たないか、持っていたとしてもその値がデフォルト値だった場合、 より優先度の低いセッティングの内容が採用されます。 通常のセッティングが持つプロパティを以下に示します。
グローバルセッティングテーブルはグローバルセッティングを持ちます。 グローバルセッティングは捨てることができないので、テーブルにはHasSettingやClearSettingメソッドは存在しません。 グローバルセッティングはSettingプロパティで参照でき、 通常のセッティングが持つプロパティを全て持っています。 Table.Setting.Font = font 'テーブル全体のフォントを設定 他の全ての要素の持つセッティングが存在しないかデフォルト値だった場合、 最終的にグローバルセッティングの値が用いられます。 そのため、グローバルセッティングのプロパティの値を、 通常のセッティングにおけるデフォルト値とはしないで下さい。 グローバルセッティングだけが持つプロパティを以下に示します。
DynamicSettingメソッドフィールドのDynamicSettingメソッドを呼ぶと、動的セッティングを取得することができます。 動的セッティングは、そのフィールドを含む全てのスコープのセッティングを含むオブジェクトで、 その中から優先度の最も高い設定値を動的に検索して返します。 font = Field.DynamicSetting.Font '最も優先度の高いFontの設定値を取得する サンプル実際にセッティングに対して設定を行うコードを見ていきましょう。 以下のテーブルを作成します。 Dim rp As New UTable.CRecordProvider With New CLayoutBuilder rp.AddField("0", New CTextFieldProvider, .Next) rp.AddField("1", New CTextFieldProvider, .Next) rp.AddField("2", New CTextFieldProvider, .Next) rp.AddField("3", New CTextFieldProvider, .Next) End With Me.Table.Content.SetRecordProvider(rp) Me.Table.CreateCaption() Using Me.Table.RenderBlock For i As Integer = 1 To 10 Me.Table.Content.AddRecord() Next End Using ![]() まずは、フォーカスを得たフィールドとレコードの色を無効にしてみましょう。 これは、グローバルセッティングにしかないプロパティです。 Me.Table.Setting.FocusBackColor = Color.Transparent Me.Table.Setting.FocusRecordBackColor = Color.Transparent ![]() Content内の全フィールドの背景色を変更します。 BackColorとAlterBackColorの両方を設定します。 Me.Table.Content.Setting.BackColor = Color.Beige Me.Table.Content.Setting.AlterBackColor = Color.Bisque ![]() キーが[2]のフィールドの背景色を変更します。 こうした場合は、フィールドディスクリプタのセッティングを用います。 偶数レコードと奇数レコードが同じ色になるように、 BackColorBothプロパティに対して設定します。 Dim rp As New UTable.CRecordProvider With New CLayoutBuilder rp.AddField("0", New CTextFieldProvider, .Next) rp.AddField("1", New CTextFieldProvider, .Next) With rp.AddField("2", New CTextFieldProvider, .Next) .Setting.BackColorBoth = Color.Aqua End With rp.AddField("3", New CTextFieldProvider, .Next) End With ![]() (0から数えて)4番目のレコードの背景色を変更します。 フィールドディスクリプタのセッティングよりも、 レコードのセッティングのほうが優先されることに気をつけて下さい。 Me.Table.Content.Records(4).Setting.BackColorBoth = Color.Coral ![]() 最後に、フィールドの背景色、前景色、フォントを変更します。 フィールドのセッティングに設定した内容は常に優先されます。 With Me.Table.Content.Records(4).Fields("2") .Setting.BackColorBoth = Color.Brown .Setting.ForeColor = Color.White .Setting.Font = New Font(SystemFonts.DefaultFont, FontStyle.Italic Or FontStyle.Bold) .Value = "BOLD&ITALIC" End With ![]() 次へ ドキュメントのトップ / ホーム |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright (c) 2009, SystemBase Co.,Ltd. |