ここでは、旧バージョンMultiRow for Windows Forms 5.0J(以下、5.0J)からの変更点について説明します。
動作保証環境について
8.0Jでは、次の環境での動作を保証していません。
- OS : Windows 2000/XP、Windows Server 2003
- 開発ツール : Visual Studio 2005/2008
- フレームワーク : .NET Framework 2.0 SP1/3.0 SP1/3.5 (※)
※ MultiRow for Windowos Forms 8.0Jでは、.NET Framework 3.5 SP1以降のバージョンを動作保証します。
上記の環境での動作保証が必要な場合は5.0Jの利用を検討してください。
一方、8.0Jでは新たに次の環境での動作を保証します。
- OS : Windows 8/8.1/Server 2012/Server 2012 R2
- 開発ツール : Visual Studio 2012/2013
- フレームワーク : .NET Framework 4.5/4.5.1/4.5.2
|
- 本製品にはMultiRow for Windows Forms 5.0Jのライセンスは含まれません。
|
InputManCellを標準機能として搭載
InputManCellを使用するには、5.0JではInputMan for Windows Forms 5.0Jのライセンスとインストールが必要でしたが、8.0Jでは、本製品のライセンスとインストールのみで使用することができます。
|
- 本製品にはInputMan for Windows Forms 8.0Jのライセンスは含まれません。
- InputManCell for Windows Forms 5.0Jで提供していたGcDateCellはGcDateTimeCellに名称を変更しました。
|
メンバの変更
クラス名
5.0Jで提供していたInputManCellのGcDateCellクラスは、8.0JではGcDateTimeCellクラスとなります。
5.0JのGcDateCellは、移行ツールにより8.0JのGcDateTimeCellに移行されます。
非推奨メンバ
次のクラスのメンバであるLoadTemplateメソッドが非推奨(Obsolete)となりました。これらのメンバは互換性のために残されています。旧バージョンから移行したプロジェクトでこれら非推奨メンバが使用されていると、ビルド時に[警告]が表示されますが、動作上の問題はありません。
- InputManCellのGcDateTimeCellのDropDownCalendarクラス
- PlusPakCellのGcCalendarCellクラス
パフォーマンスについて
8.0Jは5.0Jの軽快なパフォーマンスを維持するように開発されています。5.0Jと8.0Jの同じ機能は、同じパフォーマンスで動作することを期待できます。一方、8.0Jで追加された機能を使用する場合は、処理の程度に応じてパフォーマンスが変化する可能性があります。たとえば、5.0Jのコードを8.0Jではパフォーマンス改善用メソッドに置き換えた場合、処理速度やメモリの利用効率が改善する可能性があります。
|
- パフォーマンス改善用メソッドは6.0Jで追加した機能です。
|
詳細は「
パフォーマンスを向上するためのヒント」を参照してください。
水平方向の改ページ
8.0Jでは、ページの幅を超える部分のセルは自動的に次のページに印刷されます(水平方向の改ページ)。この動作は既定で有効です。5.0Jでは、ページの幅を超えるセルは印刷されませんでした。
5.0Jで作成されたアプリケーションが、ページの幅を超える部分の切り捨てを期待して開発されている場合、8.0Jへのバージョンアップに伴って意図しない印刷ページ数の増加や空白ページの出力が生じる可能性があります。
5.0Jと同じ動作を実現するために水平方向の改ページを無効にするには、
GcMultiRow.PrintSettings.HorizontalPageBreakプロパティの値をFalseに設定します。
分割線
5.0Jでは分割線と非スクロール領域が排他のため、非スクロール領域が使用されている場合は、
GcMultiRow.SplitModeプロパティの設定に関係なく分割線が自動的に無効になりました。8.0Jではこの制約がなくなったため、非スクロール領域が使用されている場合でも
GcMultiRow.SplitModeプロパティが有効になります。ユーザーに対して分割線の使用を不許可にする場合、明示的な設定が必要です。
デザイナで作成される既定のオブジェクト名
デザイナでテンプレートを作成するとき、5.0Jではプロジェクトの言語の種類に関わらず常に先頭1文字が小文字になる式でオブジェクト名が自動生成されていました(例:columnHeaderCell1、textBoxCell1)。8.0Jではプロジェクトの言語に合わせて異なる形式で生成されます。言語がVisual Basicの場合、先頭は大文字になります。C#の場合は小文字になります。
デザイナで作成されるオブジェクトの参照レベル
デザイナでテンプレートを作成するとき、デザイナによって配置されるセクションやセルの参照レベルがInternalからPrivateに変更されました。
これは、Windowsフォーム デザイナの動作に合わせたものです。5.0Jと同様の参照レベルにするには、オブジェクトのModifiersプロパティの値をInternalに変更します。
5.0Jから変換されたプロジェクトでは元の参照レベルが維持されます。参照レベルはModifiersプロパティを使用して変更することができます。
セル型の基底クラス
5.0JではCellクラスは基底クラスを持ちませんでしたが、8.0Jではユーザー定義型セルのツールボックスのサポートを強化するためにComponentクラスを基底クラスとして実装しています。
この変更は通常の使用においてとくに問題となりませんが、設計時の振る舞いが従来と異なる場合があります。たとえば、5.0JにおいてGrapeCity.Win.MultiRow.v50.dllファイルをツールボックスにドラッグ&ドロップするとGcMultiRowコントロールだけがツールボックスに登録されましたが、8.0JではGcMultiRowコントロールに加えて組み込みのセル型が登録されます(WindowsフォームデザイナのツールボックスではなくMultiRowのデザイナのツールボックスに表示されます)。
自動スケーリングの対応
5.0JはDPIの変更に伴う自動スケーリングに対応していませんでしたが、8.0Jは対応しています。GcMultiRowコントロールのフォームのAutoScaleModeプロパティがFontまたはDPIのとき、システムのDPIが変更されるとMultiRowの次のプロパティが影響を受けます。
DPI |
バージョン |
画面イメージ |
96 |
5.0J/8.0J(共通) |
|
120 |
5.0J |
|
8.0J |
|
スクリーンショットの補足説明:
- Windows Vista Service Pack 2の「フォント サイズ(DPI)の調整」で「大きなスケール(120 DPI)」を選択した場合です。カスタムDPI設定で「Windows XP 形式の DPI スケーリングを使用する」が有効になっています。
F4キーによる編集の開始とドロップダウンの表示
8.0Jでは、既定でF4キーによるセルのドロップダウンの表示が有効です。5.0Jでは、この処理はサンプルコードとして提案されていました。この動作を無効にするには、ShowDropDownアクションを削除します。
ComboBoxCellの視認性の改善
ビジュアルスタイルが有効のとき、選択状態になったコンボボックス型セルの文字の視認性が改善されました。ビジュアルスタイルはアプリケーション単位で識別されるため、この変更はコンボボックス型セルのスタイルがFlatの場合にも影響します。
5.0J |
8.0J |
|
|
5.0Jと同じ結果を再現するには、ComboBoxCell.Style.SelectionForeColor(
CellStyle.ForeColorプロパティ)をColor.WhiteまたはSystemColors.HighlightTextに変更してください。
自動リサイズ
GcMultiRow.AllowUserToResizeプロパティをTrueに設定すると、ユーザーによるヘッダ型セルのリサイズが許可されます。
また、
GcMultiRow.AllowUserToAutoFitColumnsプロパティにTrueを設定すると、ユーザーによるヘッダ型セルの下端または右端をダブルクリックすることでセルのサイズを最適な幅に変更できます。
セルのリサイズは許可して、ヘッダ型セルのダブルクリックによるセルのサイズを自動調整する動作のみ禁止するには、GcMultiRow.AllowUserToAutoFitColumnsプロパティをFalseを設定します。ユーザーによる、すべてのセルのリサイズ操作を無効にするにはGcMultiRow.AllowUserToResizeプロパティをFalseに設定します。
Border.Outlineプロパティ
8.0Jでは、クロス罫線に対応していることによって
Border.Allプロパティの定義が変化したため、
Border.Outlineプロパティを追加しています。既存のBorder.Allプロパティの動作に変化はなく、引き続き使用できますが、
Border.Outlineプロパティへの書き換えが推奨されます。
RoundedBorder.Allプロパティ(
Border.Allプロパティ)も同様に、RoundedBorder.Outlineプロパティ(
Border.Outlineプロパティ)への書き換えが推奨されます。
8.0Jのデザイナは、
Border.Outlineプロパティを優先的に使用するため、新規に作成したテンプレートにおいてはこの変更について意識する必要はありません。また、Border.Allプロパティは5.0Jとの互換性のために引き続きサポートされます。
既定のテンプレート
設計時にフォームにGcMultiRowコントロールを配置したとき、5.0Jでは既定のテンプレートが自動的に追加されましたが、8.0Jでは自動的に追加されません。これは、不要な初期化を減らすことによって、パフォーマンスの改善を期待できます。
既定のテンプレートは、GcMultiRowコントロールのスマートタグから「既定のテンプレート」を選択することで追加できます。とくに既定のテンプレートを使用する必要がない場合、この操作を行う必要はありません。
デザイナのオプションのUserCustomCellsLocationプロパティ
5.0Jで提供されていたデザイナのオプション、UserCustomCellsLocationプロパティは、8.0Jでは不要になったため、削除しています。
この変更は実行時の動作や、ユーザー定義セルの利用に影響しません。8.0Jで同様の操作を行うには「
ツールボックスにユーザー定義セルを登録」を参照してください。
テンプレートとグリッドコントロールの関連
テンプレートとグリッドコントロールが矛盾する設定を持つとき、基本的にグリッドコントロールの設定が優先されますが、8.0Jの機能にはこの原則が適用されないものがあります。
これらは、GcMultiRowの各プロパティがセルの共通のプロパティ(
Cell.ErrorTextプロパティや
Cell.ShowWaveLineプロパティ)を対象としており、検証アクションと直接関連しないことと、検証アクションがセルの編集中の検証をサポートしていることによるものです。
ScrollBarModeプロパティ
5.0JではScrollBarModeプロパティで水平スクロールバーと垂直スクロールバーの両方の表示方法を設定しましたが、8.0Jでは、水平スクロールバーは
HorizontalScrollBarModeプロパティ、垂直スクロールバーは
VerticalScrollBarModeプロパティを使用して、それぞれの表示方法を設定できます。
既存のScrollBarModeプロパティの動作に変化はなく、引き続き使用できますが、HorizontalScrollBarModeプロパティおよび、VerticalScrollBarModeプロパティへの書き換えが推奨されます。
グラデーションの設定
5.0JではCellStyle.GradientColorsプロパティで背景グラデーションを設定しましたが、8.0Jでは、
CellStyle.BackgroundGradientEffectプロパティを使用して設定します。
罫線スタイルHair
5.0Jでは、罫線スタイルHairがDashedと同じスタイルで表示されていますが、8.0JではHairの罫線スタイルを正しく表示することができます。互換性のために既定では、Hairは6.0Jと同じスタイルで表示されます。正しい罫線スタイルでHairを表示するには、アプリケーション構成ファイルに次の定義を設定します。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="GrapeCity.Win.MultiRow.GcMultiRow.UseLineStyleHair" value="False"/>
</appSettings>
</configuration>
参照