2015年10月24日土曜日

VB6からVB.NETへ移行する(2)

間が空いてしまいましたが、前回の続きで、残ったAxMSDBGridについてチャレンジします。

エラー内容を見てみると、CtlRefresh()はメソッドにないとのこと。該当箇所を見てみると、移行時のコメントがついていて、RefreshをCtlRefreshにアップグレードしたとのこと。
試しにRefreshに戻してみるとエラーは消えました。
とりあえず、これはこれで対処済とします。

残ったコンパイルエラーは、移行元のVB6ではVB.Dataのようでした。これが、アップグレードウィザードではSystem.Windows.Forms.Labelに移行されてしまっているようです。
元のソースでは、DBGridとの連携用に用いられているようです。
ちなみに、赤ラベルに移行されるのはウィザードの仕様のようです。
アップグレードレポートとアップグレードコメント

DBGridについてGoogle先生に聞いてみると、以下に回答が。
VB6.0→VB2005移行】 DBGridとDataコントロールの移行
Visual Studio 2008用にVbソースを変換するには?

結論的には、.NETのDataGridに移行しろ、とのことらしいです。
他方、DBGridのほうは、MSDBGridに移行されているようなので、こちらで対処できればいいような気もします。

とりあえず動作を確認するため、いったんコメントアウトして実行してみます。
画面を表示してみると、画面のメニューが表示されていません。この辺の位置調整は必要そうです。
適当にメニューを選択して実行してみると実行時エラー。対象箇所を見てみると、UPGRADE_WARNINGが記載されていて、「Panelsの下限が1から0に変更されました」とのこと。要するに、配列が1から始まっていたものが、0から始まるようになったということですね。この点もアップグレード・ウィザードでは自動修正してくれないので、警告についても1つ1つ修正していく必要があるようです。
やはり、アップグレード・レポートを見て対応していかないといけない。

先が長そうなので、ここで休憩。

0 件のコメント:

コメントを投稿