■ 標準コントロール

  • ほとんどの標準コントロールは、対応する Windows コントロールがある

  • サポートされなくなるコントロールもある

change.gif

Visual Basic 6.0 の標準コントロールの多くは、対応する Windows コントロールがあります。いくつかは、強化/変更されたり、削除されたり、また多くの効果的な新しいコントロールが追加されたりしています。

メニュー

Visual Basic 6.0 のときには、Menu コントロールのみがあり、これをメインメニューとショートカットメニュー (コンテキストメニュー) として利用していました。Windows フォームには、メニューバーを提供するための MainMenu と、ショートカットメニューを提供するための ContextMenu という 2 つのメニューコントロールがあります。またメニューの項目を追加すると、MenuItem コントロールが追加され、MainMenu によってコレクションとして管理されます。この MainMenu はフォームにひとつですが、ContextMenu はフォームで複数用意でき、フォームやコントロールなどに関連付けをするとショートカットメニューをコーディングなしでも簡単に実現できます。

メニューの編集も、従来のメニュー独自のメニューエディタではなく、インプレースメニューの機能 (図 5) によりフォームデザイナ上で視覚的に作成することができるようになりました。

図 5:フォームデザイナ上で視覚的にメニューを作成

図 5:フォームデザイナ上で視覚的にメニューを作成

Timer コントロール

Visual Basic 6.0 では、Timer コントロールの Interval プロパティを 「0」 に設定することにより、タイマーを無効にすることができました。 Visual Basic .NET では、Interval プロパティの最小値は 「1」 になり、タイマーを無効にするために Interval プロパティを利用することはできなくなります。Interval プロパティは、あくまでも Interval の設定のみに使うことになり、混乱を防ぐことができます。

Frame コントロール

Frame コントロールの代わりに、GroupBox コントロール (または Panel コントロール) を利用します。Frame と GroupBox コントロールは、ほぼ同じ機能で、GroupBox コントロールには境界線を削除する機能がありません。境界線のないコントロール、つまりコンテナとしての役割のみを果たし GUI を持たない枠組みを利用したいときにPanel コントロールを利用します。

サポートされなくなるコントロール

次のような、グラフィック関係のコントロールは、サポートされなくなります。

  • Shape コントロール

  • Line コントロール

このほか、OLE コンテナコントロール、Data コントロール、Image コントロールもサポートされなくなります。Image コントロールは Picture コントロールの軽量な代替として利用されていましたが、現在はリソースの節約はそれほど深刻でないため、これからは Picture コントロールを利用することになりました。

コントロール配列

Visual Basic 6.0 には、同じ名前で、インデックスにより識別されるコントロール配列がありました。これらは、プロパティは別々に設定でき、イベントプロシージャを共有できるという機能がありました。 Visual Basic .NET では、コントロール配列は利用できなくなります。ただし、コントロール配列の代わりになるコレクションや配列、また強化されたイベントの機能などを利用することができます。

upgrade.gif

メニュー

Visual Basic 6.0 のMenuコントロールをメインメニューとして利用していた場合、MainMenuコントロールにアップグレードされるので、そのまま利用可能です。一方、ContextMenuとしては使用することができないので、作り直しが必要です。

Timer コントロール

Enabled プロパティ、Interval プロパティなどがそのままアップグレードされます。ただし、Interval プロパティの最小値が 「1」 であるため、この値が 「0」 のときは自動的に 「1」 に変更されます。つまり、Visual Basic 6.0 では Interval プロパティが 「0」 に設定されていたためTimerイベントが発生しなかった場合でも、1 ミリ秒ごとに Timer イベントが発生するアプリケーションに変わってしまいます。そのため、このような場合には、アップグレード後に手直しが必要になります。

Frame コントロール

Frame コントロールは、GroupBox コントロールに置き換わります。もちろん、Frame上に配置されたオプションボタンなどがある場合なども、すべて適切にアップグレードされます。ただし、境界線を 「なし」 にしていた場合、GroupBox には対応する機能がないため、Panel コントロールに置き換わります。また、これにはタイトルを表示する機能がないので、必要に応じて修正します。

サポートされなくなるコントロール

サポートされなくなる次のコントロールは、同じ高さを持つ赤色のラベルに変更されます。

  • Shape コントロール

  • Line コントロール

  • OLE コンテナコントロール

  • データコントロール

アップグレードレポートやコメントにしたがって適切な修正が必要です。水平/垂直の Line コントロールは、見た目は水平線/垂直線のように見えますが、実際にはラベルなので適切に修正するとよいでしょう。

また、データコントロールを利用したプロジェクトをアップグレードすると、DAO を利用するための参照設定やコードが追加されるので、必要であれば利用することもできます。不要であれば削除しましょう。

Image コントロールは、Picture コントロールにアップグレードされます。

コントロール配列

Visual Basic 6.0 のコントロール配列をアップグレードすると、Visual Basic 6.0 互換機能を利用して、コントロール配列を利用するプログラムに置き換えられ、従来と同様の動作をします。

nowwhat.gif

Timer コントロール

Timer のイベントを発生させないようにするために、「Interval プロパティ = 0」 ではなく、「Enabled プロパティ = False」 を利用します。この本来の使い方をしていれば、ウィザードによるアップグレード後の手直しは不要です。

addition.gif

タイマーコントロールのような不可視コントロールや、メニューコントロールは、フォーム上ではなく、フォームデザイナの下部の 「不可視コントロール専用領域」 (図6) に配置されます。とくに Visual Basic .NET では、不可視のコントロールが増えるので、別領域に配置されることで、デザイン時に邪魔にならず、効率よく開発ができます。

アップグレードウィザードでアップグレードすると、不可視コントロールは、自動的にフォームデザイナの下部の 「不可視コントロール専用領域」 に配置されます。

図 6:不可視コントロールやメニューコントロールは 「不可視コントロール専用領域」 に配置される

6 :不可視コントロールやメニューコントロールは   「不可視コントロール専用領域」   に配置される

plus one新しい便利なコントロールの紹介

さまざまな効果的なコントロールが提供されています。ここではそのいくつかを紹介します。

日付に関連するコントロールは、今までもサードパーティ製あるいは CommonControl として追加されていましたが、より強力なコントロールが Windows コントロールとして提供されます。

DateTimePicker コントロール

コンボボックスの右のドロップダウン矢印をクリックすると、カレンダーが表示され、その一覧から日付を選択することができます (図 7)。

図 7 : DateTimePicker コントロール

7 DateTimePicker コントロール

MonthCalendar コントロール

1 ケ月分のカレンダーを表示します (図 8)。

図 8:カレンダーコントロール

8 :カレンダーコントロール

プロバイダコントロール

他のコントロールと連携してパワーを発揮するさまざまなコントロールがあります。これらのコントロールをフォームに追加すると、不可視コントロールが表示されるペインに並びます。そして、すべてのコントロールにそのプロバイダコントロールが提供するプロパティが追加されます。

ErrorProvider コントロール

コントロールに関連するエラーを簡単に表示できます。たとえば、入力が必須の項目に、データが未入力のまま[OK]ボタンをクリックした場合、エラーのアイコン (赤いエクスクラメーションマーク) を表示し、そこにマウスと近づけるとエラーがツールヒントとして表示されるというような (図 9) 、そんな GUI を簡単に実現できます。もちろん、このアイコンを変更することも可能です。

図 9 : ErrorProvider コントロール

9 ErrorProvider コントロール

HelpProvider、ToolTip コントロール

HelpProvider コントロールを利用すると、[F1]キーを押したときに、コントロールに関連付けられた状況依存のヘルプを表示することができます。また、ToolTip をフォームに追加すると、各コントロールに 「ToolTip1 [注] の ToolTip」 というプロパティが追加されるので、ここでプロパティにツールヒント文字列を設定します。

[ ] ToolTip1 ToolTip に付けられるデフォルトの名前です