InputMan for Windows Forms 12.0J 移行ガイド > 4.0J 以前のバージョンからの移行 > 移行に関する注意点 |
ここでは、4.0J 以前のバージョンから 12.0J へ移行する際の注意事項について説明します。
InputMan は、5.0J で大幅な機能変更が行われたことにより、4.0J 以前のコントロールと 12.0J ではインタフェースが異なり互換性は維持されていません。
そこで、4.0J 以前のコントロールを 12.0J で利用できるようにするために、インタフェースを補間するラッパーアセンブリ(GrapeCity.Win.Input.Interop.v120.dll)が提供されています。このラッパーアセンブリは、旧バージョンとの差異を吸収し、4.0J のインタフェースのまま 12.0J 上での実行を可能にするラッパーコントロールを提供します。
移行ツールは、4.0J のコントロールを 12.0J のラッパーコントロールへ変換します。
4.0J で作成されたコントロールは、移行ツールにより名前空間が、GrapeCity.Win.Input から GrapeCity.Win.Input.Interop へ変更されます。各コントロールのクラス名、およびプロパティやメソッドやイベントといった各メンバのインタフェースは旧バージョンのままとなります。移行されたラッパーコントロールのプロパティなどを変更しコントロールの動作を変更することはできますが、新たな機能を追加する場合や大きな修正を行う場合は、12.0J のコントロールに置き換えた上で機能実装することを推奨します。
なお、12.0J のラッパーコントロールでは 4.0J の機能をすべてを補間するわけではありません。一部にはラッパーコントロール上でサポートされない機能や制限事項として動作しないものもあります。これらの機能を使用している場合には注意が必要です。詳しくは「制限事項」を参照してください。
プロジェクトに関わるライブラリやユーザーコントロールなど、InputMan を使用している全てのプロジェクトを移行してください。プロジェクトが分かれている場合には、プロジェクト毎に移行ツールを実行する必要があります。
移行ツールは変更された名前空間やメンバ名を自動的に変換しますが、次のようなケースでは、移行ツールがこれらの変更を正しく検出しない可能性がございます。その場合は、手動にてコードを変更してください。
Imports ステートメント(Visual Basic)や using ディレクティブ(C#)を使用して、名前空間のエイリアスを作成している。
複数行にわたり、クラスやメンバ名を記述している。
変更されたクラスやメンバと同じ名前のユーザ定義クラス、メンバが存在している。
4.0J より前のプロジェクトを 12.0J に移行する場合には、移行ツールで一度 4.0J に移行します。4.0J に移行後は一度移行ツールを閉じてください。移行ツールを閉じないまま再度プロジェクトファイルを指定した場合には、4.0J のアセンブリの情報が正しく読み込まれず認識されません。
ラッパーコントロールの郵便番号コントロールについては、「JPAddress for .NET」の機能を使って実現しています。4.0J の郵便番号コントロールを含むプロジェクトを移行するには JPAddress の開発ライセンスが別途必要です。
移行後にデザイン画面でコントロールを移動するなど、フォームのデザイナファイル(XX.Designer.vb または XX.Designer.cs)が更新されると、エラーや警告が発生している対象のコントロールのコードが削除される場合があります。
対象のフレームワークが.NET Framework 3.0 以前の場合は、3.5 SP1 以降に変更する必要があります。対象のフレームワークを変更する方法については、下記の MSDN を参照してください。
方法: .NET Framework のバージョンをターゲットにする
以下のコントロールは「PlusPak for Windows Forms」に移動しています。これらを使用している場合には、PlusPak の移行ツールを実行し対象のコントロールを PlusPak に移行してください。PlusPak の移行ツールの実行については以下の点に注意してください。
4.0J 以前のバージョンから 12.0J に移行する場合、先に 4.0J へ移行した後で、12.0J へ移行する前に PlusPak の移行ツールを実行する必要があります。
4.0J から 12.0J に移行する場合、PlusPak の移行ツールは 12.0J へ移行する前に実行する必要があります。
なお、これらのコントロールを PlusPak に移行するには、PlusPak の開発ライセンスが別途必要です。
4.0J 以前の InputMan | PlusPak | |
---|---|---|
バルーンチップコンポーネント | BalloonTip | GcBalloonTip |
カレンダーコントロール | Calendar | GcCalendar |
電卓コントロール | Calculator | GcCalculator |
コンテナコントロール | Container | GcContainer |
ファンクションキーコントロール | FunctionKey | GcClassicFunctionKey |
キーロックコンポーネント | KeyLock | GcKeyLock |
PlusPak への移動履歴については「InputMan のバージョンアップ履歴」を参照してください。
4.0J 以前のバージョンから 12.0J に移行したときに、互換性の問題からエラーや警告が発生することがあります。表示される警告のうち、互換性に関する内容には以下の種類があります。
これらの警告が発生した箇所に対しては、「移行後に必要な修正」を参考に、手作業で修正を行ってください。
InputMan の旧バージョンのコントロールを 12.0J 上で動作させるラッパーコントロールは、その内部では 12.0J が動作しています。12.0J のコントロールをラッパーコントロールが 4.0J のインタフェースに変換し、実行する仕組みとなっています。手作業で修正する際に、内部で動作している 12.0J のコントロールに直接アクセスする方法で、同じような動作を実現できる場合があります。内部コントロールには以下のように「InnerEditor」と記述することでアクセスすることが可能です。 Edit1.InnerEditor.… Mask1.InnerEditor.… CharMask1.InnerEditor.… Date1.InnerEditor.… TimeSpan1.InnerEditor.… Number1.InnerEditor.… Combo1.InnerEditor.… List1.InnerEditor.… InnerEditor キーワードでアクセスする内部コントロールは 12.0J です。利用できるプロパティは 12.0J のコントロールのプロパティになります。 |
移行ツールにより、4.0J 以前のコントロールは以下のように移行されます。
4.0J 以前のコントロール | 12.0J のコントロール | ||
---|---|---|---|
テキスト | Edit | ラッパーテキスト | Interop.Edit |
マスク | Mask | ラッパーマスク | Interop.Mask |
日付 | Date | ラッパー日付 | Interop.Date |
数値 | Number | ラッパー数値 | Interop.Number |
コンボ | Combo | ラッパークラシックコンボ | Interop.ClassicComboBox |
リスト | List | ラッパーリスト | Interop.List |
キャラクタボックス | CharMask | ラッパーキャラクタボックス | Interop.CharMask |
タイムスパン | TimeSpan | ラッパータイムスパン | Interop.TimeSpan |
郵便番号 | Postal | ラッパー郵便番号 | Interop.Postal |
IME | Ime | ラッパーIME | Interop.Ime |
日付検証 | DateValidator | ラッパー日付検証 | Interop.DateValidator |
数値検証 | NumberValidator | ラッパー数値検証 | Interop.NumberValidator |