Visual Basic 6.0 と .NET のコントロールの相違点
目的
- Visual Basic 6.0 ActiveX コントロールのうち、.NET に等価なものがあるのはどのコントロールなのかを理解する
- .NET コントロールで変更されたプロパティについて学ぶ
- .NET で新しく追加されたコントロールについて学ぶ
前提
このドキュメントを活用するためには、以下の知識が必要となります。
- ActiveX コントロールについての理解。
- Visual Basic 6.0 と ActiveX コントロールを使って Windows アプリケーションを作成した経験。
目次
標準コントロールの違い
.NET の新しいコントロール
プロパティの変更点
コントロールの一般的な変更点
標準コントロールの相違点
要約
標準コントロールの違い
Microsoft .NET コントロールは、他のクラスの階層から作成されるという点で、内部的には ActiveX コントロールと大きく異なっています。 これらの .NET コントロールの継承元となっているクラスは複数存在しており、それぞれが実際のコントロールに近づくに従って機能を改良し、より多くの機能を追加しています。 コントロールのクラス階層のトップには Control クラスがあります。 ただし、独自のコントロールを作成するときには、おそらく UserControl クラスから継承を行うことになるでしょう。 UserControl クラスは、開発者に必要なプロパティとイベントを含んでおり、構成コントロールの描画処理をすべて自動的に行ってくれるからです。
.NET でユーザー インターフェイスの作成を始めた人は、Visual Basic 6.0 にあったコントロールの多くがなくなっていたり、名前が変更されていたりすることに気づくでしょう。この記事では、Visual Basic 6.0 の標準コントロールと、それらと等価な .NET コントロールの概要を示します。また、このドキュメントの後の方では、各コントロールのプロパティ名の具体的な違いについて説明します。これらのコントロールは、プロパティの変更と一部のイベント名の変更を除けば、Visual Basic 6.0 とほとんど同じ動作をします。
表 1 は、Visual Basic 6.0 ツールボックスにある標準コントロールと、それと等価な.NET コントロールを示しています。この表はすべての .NET コントロールを示しているわけではありませんが、.NET 用のコントロールにどのような変更が加えられたのかがわかるでしょう。
Visual Basic 6.0 の標準コントロール | 等価な .NET コントロール |
Picture | PictureBox |
Label | Label |
TextBox | TextBox |
Frame | GroupBox |
CommandButton | Button |
CheckBox | Button |
OptionButton | RadioButton |
ListBox | ListBox |
ComboBox | ComboBox |
HScrollBar | HScrollBar |
VScrollBar | VScrollBar |
Timer | Timer |
DriveListBox | 無し。OpenFileDialog コントロールに置き換え。 |
DirListBox | 無し。OpenFileDialog コントロールに置き換え。 |
FileListBox | 無し。OpenFileDialog コントロールに置き換え。 |
Shape | 無し。シェイプの描画には .NET CLR のクラスを使用します。 |
Line | 無し。シェイプの描画には .NET CLR のクラスを使用します。 |
Image | 無し。1 つの画像の表示には PictureBox コントロールを使用します。 |
Data | 無し。.NET におけるデータ バインディングは、Visual Basic 6.0 とはまったく異なる形で処理されます。 |
OLE | 無し。 |
ImageList | ImageList |
表 1. 一部のコントロールは、.NET で名前が変更されている。
.NET の新しいコントロール
標準コントロールに加えて、.NET にはまったく新しいコントロールが追加されています。これらのコントロールの中には、Visual Basic 6.0 に等価なコントロールがあるものもあれば、新しいものもあります。次に、.NET で使用できる新しいコントロールの例をいくつか示します。
新しいコントロール | 説明 |
LinkLabel | Windows フォーム上にハイパーリンクを配置することができます。これはブラウザ内で使用するハイパーリンクと同じ動作を持ちます。 |
MainMenu | フォーム上のメニューの作成に使用します。 |
DataGrid | ADO.NET データセットのデータを表形式で表示します。これは Visual Basic 6.0 の FlexGrid コントロールによく似ていますが、多数の新しい機能が追加されています。 |
CheckedListBox | 各項目の横のチェックボックスを使って、リストから 1 つまたは複数の項目を選択できるようにしている強化版の ListBox。Visual Basic 6.0 では、これは Style プロパティを 1-Checked に設定することによって実現していました。 |
TabControl | Visual Basic 6.0 の TabStrip コントロールと SSTab コントロールの機能を組み合わせたもの。 |
Splitter | 2 つのペインを持つエクスプローラ式のインターフェイスを作成することができます。 |
DomainUpDown | テキスト ボックスを上下の矢印と組み合わせたもの。コンボ ボックスと同じように、リストには任意のタイプのデータを格納することができ、ユーザーは上下の矢印をクリックすることでデータをスクロールすることができます。 |
TrackBar | Visual Basic 6.0 の Slider コントロールによく似ています。 |
HelpProvider | フォームのトレイにこのコントロールを追加すると、フォーム上の各コントロールに HelpString、HelpTopic、および ShowHelp プロパティが追加されます。 |
ToolTip | フォームのトレイにこのコントロールを追加すると、フォーム上の各コントロールに ToolTip プロパティが追加されます。 |
NotifyIcon | 一般には、Windows サービスを作成するときに、タスク バーのシステム トレイに表示されるアイコンを設定するために使用されます。このアイコンがクリックされたら、メニューを表示したり、そのプログラム中の任意のフォームを表示することができます。 |
ContextMenu | フォーム上の任意のコントロールに割り当てることができるメニューを追加します。 |
OpenFileDialog | OpenFile ダイアログ ボックスを表示します。このコントロールは、Visual Basic 6.0 では CommonDialog コントロールのメソッドとして実現されていました。 |
SaveFileDialog | SaveFile ダイアログ ボックスを表示します。このコントロールは、Visual Basic 6.0 では CommonDialog コントロールのメソッドとして実現されていました。 |
FontDialog | Font ダイアログ ボックスを表示します。このコントロールは、Visual Basic 6.0 では CommonDialog コントロールのメソッドとして実現されていました。 |
ColorDialog | Color ダイアログ ボックスを表示します。このコントロールは、Visual Basic 6.0 では CommonDialog コントロールのメソッドとして実現されていました。 |
PrintDialog | Print ダイアログ ボックスを表示します。このコントロールは、Visual Basic 6.0 では CommonDialog コントロールのメソッドとして実現されていました。 |
PrintPreviewDialog | PrintPreviewControl と組み合わせて使用されます。 |
PrintPreviewControl | プリンタの代わりにプレビュー ウィンドウに印刷結果を表示することができます。 |
ErrorProvider | このコントロールをフォームのトレイに追加すると、フォーム上の各コントロールに Error、IconAlignment、および IconPadding プロパティが追加されます。 |
PrintDocument | 他のクラスとともに、ドキュメントをプリンタに送信します。 |
PageSetupDialog | ユーザーが余白や紙の向きなどの設定を操作するためのダイアログ ボックスを表示します。 |
表 2. ユーザー インターフェイスの作成に利用できるさまざまな標準コントロールが用意されている。
プロパティの変更点
コントロール間でプロパティの名前に一貫性を持たせ、また名前をわかりやすくするために、多くのプロパティ名が Visual Basic 6.0 から変更されています。一部のプロパティは、不要になったため (DDE プロパティなど)、またはそれらが実行していた機能が .NET の他のコントロールやメソッドに置き換えられたために削除されています。
削除された共通プロパティ
Visual Basic 6.0 のすべてのコントロールに共通するプロパティがいくつかありました。これらのプロパティの多くは、無意味になったか、その機能がまったく異なる形で処理されるようになったために、.NET では削除されています。表 3 は、.NET では削除された、Visual Basic 6.0 の共通プロパティを示しています。このドキュメントの後の方で、これらと等価なプロパティについて、またはこれらが削除された理由について説明しています。
削除されたプロパティ |
DragIcon |
DragMode |
Index |
LinkItem |
LinkMode |
LinkTimeout |
LinkTopic |
MouseIcon |
MousePointer |
OLEDragMode |
OLEDropMode |
表 3. .NET コントロールから削除されたプロパティ
新しい共通プロパティ
どのコントロールでも、同じプロパティのセットが必要になることがよくあります。Visual Basic 6.0 と同様に、.NET にもすべてのコントロールに共通するプロパティのセットが用意されています。表 4 は、これらの新しいプロパティの名前と機能を示しています。
新しいプロパティ | 説明 |
AccessibleDescription | Narrator アクセサリが読み込む説明文。Narrator は視覚に障害のある人が使用するコミュニケーション ツールで、コンピュータの画面上の単語をコンピュータのスピーカーを通して読み上げます。これはほとんどの Windows システム上に用意されており、[スタート] - [プログラム] - [アクセサリ] - [ユーザー補助] - [Narrator] で呼び出すことができます。このツールは、画面上のマウスの位置にある単語を読み上げます。この説明文を用意しておくと、Narrator ツールはユーザーに対して説明文を読み上げます。 |
AccessibleName | Narrator アクセサリが報告するコントロールの名前。 |
AccessibleRole | Narrator アクセサリがユーザーに報告する役割。 |
AllowDrop | コントロールがドラッグ アンド ドロップ通知を受け付けるかどうかを決定します。 |
Anchor | コントロールがフォーム上のどの位置にアンカーリングされるかを決定します。任意のアンカー スタイルを選択することができます。 |
ContextMenu | このプロパティを ContextMenu コントロールの名前に設定すると、右マウス ボタンでこのコントロールがクリックされたときに、メニューが自動的に表示されるようになります。 |
Dock | コントロールがフォーム上のどの位置にドッキングされるかを決定します。コントロールをドッキングすると、コントロールは同じ位置にドッキングされたまま、フォームに合わせて拡大/縮小します。 |
Locked | True に設定されている場合、このコントロールはデザイン時に移動不可能となります。 |
Modifiers | コントロールのスコープを決定します。デフォルトで、.NET ではすべてのコントロールが Friend となります。これまでのバージョンの Visual Basic では、すべてのコントロールが Public でした。.NET では、Private、Protected、Friend、または Public のいずれかを選択することができます。 |
表 4. .NET のすべてのコントロールに共通する新しいプロパティが多数用意されている。
変更されたプロパティ
Visual Basic 6.0 には、すべてのコントロールが持たなくてはならないプロパティが 4 つありました。これらは Left、Top、Width、および Height です。これらのプロパティは現在も使用できますが、Location と Size という新しい構造体を使用することが推奨されます。表 5 は、これらの新しいプロパティの内容と、そこに含まれている構造体について説明しています。
プロパティ | 説明 |
Location | このコントロールが置かれている位置の X および Y 座標を与える Point 構造体。これまでのバージョンの Visual Basic では、これは Left および Top プロパティを使って設定されていました。 |
Size | コントロールの幅と高さを与える Size 構造体。これまでのバージョンの Visual Basic では、これは Width および Height プロパティを使って設定されていました。 |
表 5. .NET コントロールの位置と全体的なサイズは Location と Size によって制御されるようになった。
コントロールの一般的な変更点
.NET では、Visual Basic 6.0 と比べて、コントロールの動作にさまざまな変更が加えられています。次の 9 つのセクションでは、これらの変更点と、.NET における開発に与える影響について説明します。
.NET コントロールの作成
.NET における Visual Basic 6.0 からの最も大きな変更点の 1 つは、フォーム上のコントロールをインスタンス作成するコードが目に見えるようになったということです。これまでは、このコードは ActiveX コントロールと Visual Basic ランタイムの中に隠されていました。現在では、フォームの背後のコードの #Region セクションを展開することで、このコードを見ることができます。次に、1 つのラベル、1 つのテキスト ボックス、および 1 つのボタン コントロールを持つサンプル フォームの例を示します。
Public Class frmTest
Inherits System.Windows.Forms.Form
#Region "Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'この呼び出しは Windows フォーム デザイナのために必要
InitializeComponent()
'InitializeComponent() 呼び出しの後に初期化作業を追加する
End Sub
'フォームは配列をオーバーライドして、コンポーネント リストをクリーンアップする
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Button1 As System.Windows.Forms.Button
'Windows フォーム デザイナのために必要
Private components As System.ComponentModel.Container
'注意: 以下のプロシージャは Windows フォーム デザイナのために必要
'変更を必要とするときは、Windows フォーム デザイナを使って変更する
'コード エディタを使って変更してはいけない
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.Button1 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'Label1
'
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 0
Me.Label1.Text = "Label1"
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(8, 80)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.TabIndex = 1
Me.TextBox1.Text = "TextBox1"
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(112, 32)>
Me.Button1.Name = "Button1"
Me.Button1.TabIndex = 2
Me.Button1.Text = "Button1"
'
'frmTest
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(392, 250)
Me.Controls.AddRange(New System.Windows.Forms.Control()
{Me.Button1, Me.TextBox1, Me.Label1})
Me.HelpButton = True
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "frmTest"
Me.Text = "frmTest"
Me.ResumeLayout(False)
End Sub
#End Region
End Class
この例からわかるように、個々のコントロールが作成された後に、Location や Size などのプロパティが初期化されます。Visual Studio デザイナのプロパティ ウィンドウで設定したその他のプロパティも、このセクションにコードとして追加されます。望むならば、ユーザー インターフェイスをメモ帳のみで設計することも可能になったのです!
注: この #Region エリアのコードを変更してはなりません。このコードは、フォームのコントロールを追加または削除するたびに、Visual Studio 環境によって自動的に作成され、破棄されます。
アンカーリング
多くの Visual Basic 開発者は、フォームの右下の隅にコントロールをアンカーリングするためのコードを嫌になるほど書いてきたことでしょう。ユーザーがフォームのサイズを変更できるようにしたいが、フォーム上の特定のコントロールを、フォームの下辺および (または) 右辺を基準として一定の位置に保ちたい場合には、このようなコードが必要となります。そのコードは捨ててください ! Visual Studio .NET は Anchor プロパティという単純なソリューションを提供しています。このプロパティにより、コントロールをコンテナの任意の辺またはすべての辺にアンカーリングすることができます。下辺および (または) 右辺にアンカーリングすると、コントロールはフォームのサイズが変更されたときに自動的に移動するようになります。上辺および (または) 左辺にアンカーリングすると、コントロールはフォームのサイズが変更されたときに自動的にサイズが変わるようになります。この新しいプロパティを使って実験し、コントロールに与える影響を確認してください。
図 1. 典型的なデータ入力画面
図 1 のような典型的なデータ入力フォームでは、[Add]、[Update]、[Delete]、および[Clear] の各ボタンを、フォームの右下隅に固定するとよいでしょう。このためには、ボタンを強調表示し、Anchor プロパティを BottomRight に設定します。[プロパティ] ウィンドウで Anchor プロパティを探し、ドロップダウン矢印をクリックします。図 2 のように、上と左のバーを選択解除し、下と右のバーを選択します。
図 2. Anchor ドロップダウンがアクティブになっている [プロパティ] ダイアログ ボックス
Anchor プロパティを使用すると、コードを 1 行も書かずに、コントロールをフォームの辺にアンカーリングすることができます。グラフィック メニューからオプションを選択することで、希望の動作を選択します。コード内では、TopLeft、BottomRight、Left、Right、Top、Bottom、TopLeftBottom、および All などの定数を使ってプロパティの値を設定できます。
ドッキング
Dock プロパティは、コントロールをコンテナの任意の辺にドッキングできるという点で、Anchor プロパティに似ています。コントロールをドッキングすると、そのコントロールはフォームとともに拡大、縮小しますが、ドッキング先の辺は固定されます。コントロールをフォームのすべての辺にドッキングすれば、コントロールはフォーム全体を覆うことになります。
コントロール配列はどうなったか?
Visual Basic 6.0 では、複数のコントロールの Name プロパティを同じ値に設定することで、コントロール配列を作成することができました。このとき、Index プロパティは個々のコントロールで異なる数値に設定されました。この Index 値は、そのコントロール グループのすべてのイベントに渡され、開発者はどのコントロールがイベントを発生させたのかを判断することができます。このように、Visual Basic 6.0 におけるコントロール配列の使用方法の 1 つとして、1 つのイベント プロシージャで複数のコントロールのコードを処理できるようにするというものがありました。
Visual Basic .NET では、コントロール配列の扱いは大きく異なっています。1 つのプロシージャで、複数のコントロールのイベントを処理する方法は 2 つあります。.NET クラスに組み込みの AddHandler プロシージャを使うものと、プロシージャの Handles 句を使うものです。
フォームの下部に置かれたすべてのボタンを、1 つの Click イベントで処理するには、いずれかのボタンをダブルクリックして、コード ウィンドウに Click イベント プロシージャを生成させます。その後、そのプロシージャに処理を行わせるためのコードを入力します。
Private Sub btnSave_Click( _
ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles btnSave.Click, btnNew.Click, btnDelete.Click
MessageBox.Show("A Click event")
End Sub
上のコードは大した機能は持っていませんが、複数のコントロールが同じプロシージャを呼び出す方法を示しています。コントロール配列を作成する代わりに、イベント ハンドラを作成し、複数のコントロールからの 1 つまたは複数のイベントに反応するように指定します。
Handles 句以外にも、AddHandler ステートメントを使って、1 つのプロシージャで複数のコントロールのイベントを処理させることができます。このステートメントでは、呼び出すプロシージャを指定して、任意のイベントにイベント ハンドラを追加することができます。イベントにイベント ハンドラを追加することになるので、一連のイベント ハンドラに同じイベントを処理させることが可能です。つまり、実質的には、イベントに反応してどのプロシージャを呼び出すべきかをコントロールに指示することができます。イベント処理をこの新しいプロシージャに委譲するということから、このプロシージャはデリゲートと呼ばれます。
この委譲を実現するには、既存のコードの TODO コメントの下の、フォームの New メソッドに、次のようなコードを追加します。
AddHandler btnDelete.Click, AddressOf ButtonClick
AddHandler btnNew.Click, AddressOf ButtonClick
上のコードを追加すると、[New]、[Delete]、または [Save] ボタンをクリックしたときに、ButtonClick イベント プロシージャが呼び出されるようになります。もちろん、このイベント プロシージャがどのボタンから呼び出されたのかを判定する必要があります。この目的には、すべてのイベント プロシージャに渡される sender パラメータが利用できます。sender は、このイベントを発生させたオブジェクトを表しています。したがって、次のようなコードを書くことができます。
Private Sub ButtonClick( _
ByVal sender As Object, _
ByVal e As System.EventArgs)
If sender Is btnNew Then
MessageBox.Show("New button pressed")
ElseIf sender Is btnSave Then
MessageBox.Show("Save button pressed")
ElseIf sender Is btnDelete Then
MessageBox.Show("Delete button pressed")
End If
End Sub
コントロール配列を設定するこの 2 つの方法には、真の違いはないので、どちらを使っても同じです。
規定値およびキャンセル ボタン
これまでのバージョンの Visual Basic では、CommandButton コントロールの Default プロパティを True に設定することで、Enter キーが押されたときに、このボタンの Click イベントを呼び出すよう Visual Basic に指示することができました。また、別の CommandButton コントロールの Cancel プロパティを設定することで、Esc キーが押されたときに、このボタンの Click イベントを呼び出すよう Visual Basic に指示しました。その後、個々の Click イベント プロシージャについて、フォームを閉じ、このフォームを呼び出したルーチンに対してどのボタンが押されたのかを通知するために、何らかのプロパティを設定するコードを書く必要がありました。
現在では、個々のボタン用のコードをまったく書かずに、これと同じことを実現することができます。このためには、各ボタンの DialogResult プロパティを特定の値に設定します。たとえば、フォーム上に [OK] ボタンと [Cancel] ボタンがある場合には、これらのボタンの DialogResult をそれぞれ OK と Cancel に設定します。その後、フォームの AcceptButton プロパティを OK ボタンの名前に設定し、フォームの CancelButton プロパティを Cancel ボタンの名前に設定します。
これらのプロパティを設定した後に、フォームを ShowDialog メソッドを使って表示すると、これらのボタンはフォームを自動的に閉じるようになります。その後、フォームの DialogResult プロパティは、押されたボタンの DialogResult 値に設定されます。この方法で、呼び出し側のプログラムから、どのボタンがフォームを閉じたのかを判定することができます。
状況依存のメニュー
Windows アプリケーションでは、コントロールが右マウス ボタンでクリックされたときに表示される特殊なメニューを割り当てなくてはならないことがあります。これを Visual Basic 6.0 で実現するためには、Visible プロパティを False に設定したメニューを作成し、このコントロールの Click イベント プロシージャの中に、隠されたメニューを表示するコードを書く必要がありました。
.NET では、ContextMenu コントロールを使って、フォームの MainMenu からは完全に独立したメニューを作成することができます。このメニューをコントロールに割り当てるには、単にコントロールの ContextMenu プロパティを設定します。追加のコードを書く必要はありません。
フォーム上のコントロールのロック
ユーザー インターフェイスを慎重に作成した後に、コードを追加するためにクリックしたときに、コントロールが間違って動いてしまうのを避けたいことがあります。Visual Basic 6.0 では、フォーム上のすべてのコントロールをロックするオプションがありました。これは便利な機能でしたが、大きなフォームの小さなセクションだけが未完成であるような場合には問題となりました。そのセクションの作業をするだけのために、すべてのコントロールをアンロックする必要があったのです。その際に、コントロールが誤って動かされてしまう危険性がありました。
.NET では、コントロールをグループとして、または個別にロックすることができます。これは、大きなフォーム上で複数のコントロール セットを扱っているときに非常に有効です。
MDI フォーム上のコントロール
Visual Basic 6.0 では、MDI フォーム上に配置できるコントロールは、Align プロパティを持つものに限られていました。.NET では、任意のコントロールを MDI フォーム上に配置することができます。
DDE の削除
ダイナミック データ エクスチェンジ (DDE) は、.NET 言語ではテクノロジとしてサポートされなくなりました。プログラム間で通信を行う手段は他にいくつも用意されているので、このテクノロジはもはや不要になっています。その結果、すべてのコントロールから、Link というプレフィックスを持つプロパティがすべて削除されています。
標準コントロールの相違点
このドキュメントで前に述べたように、多くの標準コントロールに、さまざまなプロパティの変更が加えられています。以下に、個々の標準コントロールの変更されたプロパティと、新たに追加されたプロパティを示します。以下の表に示した相違点は、各コントロールに固有のプロパティの変更点です。前に述べた共通プロパティも変更されていますが、ここでは省略しています。
ラベル コントロール
新しいプロパティ | 説明 |
Text | Visual Basic 6.0 では、このプロパティは Caption という名前でした。 |
テキスト ボックス コントロール
新しいプロパティ | 説明 |
AcceptsReturn | True に設定されている場合、複数行テキスト ボックスは CRLF を有効な文字として受け付けます。CRLF がテキスト ボックスに入力されるのを防ぐには、このプロパティを False に設定します。 |
AcceptsTab | True に設定されている場合、複数行テキスト ボックスは Tab を有効な文字として受け付けます。Tab がテキスト ボックスに入力されるのを防ぐには、このプロパティを False に設定します。 |
CharacterCasing | ユーザーがこのコントロールに入力する文字の大文字小文字の使い分けを区別します。オプションは Normal、UpperCase、および LowerCase です。 |
ReadOnly | ユーザーがこのテキスト ボックスに入力を行えないようにしたい場合には、True に設定します。このプロパティは、以前の Locked プロパティと同じ機能を持ちます。 |
TextAlign | ユーザーがテキスト エリアにデータを入力するときのテキストの位置揃えを制御します。このプロパティは Left、Right、または Center に設定することができます。 |
ボタン コントロール
新しいプロパティ | 説明 |
BackGroundImage | ボタンの背景イメージを設定することができます。また、このイメージの上にテキストを追加することもできます。 |
DialogResult | フォームがダイアログとして呼び出されたときに返される結果を設定します。ユーザーがこのボタンを押すと、このプロパティの中の値が返されます。 |
FlatStyle | ボタンの外見を変更します。オプションには Flat、PopUp、Standard、および System があります。Windows XP を使用している場合には、XP のテーマを使用することができるので、つねに System を使用するべきです。 |
Image | このボタンに表示するイメージ。 |
ImageAlign | ボタン内のイメージを配置する場所。 |
ImageIndex | ImageList プロパティで設定された ImageList コントロールの中のイメージのインデックス番号。 |
ImageList | ImageIndex プロパティを使ってイメージを取得する ImageList コントロールの名前。 |
Text | Visual Basic 6.0 では、このプロパティは Caption と呼ばれていました。 |
TextAlign | ボタンの中に表示されるテキストの位置揃えを制御します。オプションとしては Left、Right、Center、Middle、Top、Bottom、およびこれらの組み合わせが指定できます。 |
チェック ボックス コントロール
新しいプロパティ | 説明 |
AutoCheck | True に設定されている場合、コントロール上の任意の場所をクリックすると、状態が Checked から UnChecked に変更されます。 |
BackGroundImage | チェック ボックス コントロールの背景イメージを設定することができます。また、このイメージの上にテキストを追加することもできます。 |
CheckAlign | チェック ボックス コントロールの位置を決定します。Visual Basic 6.0 では、位置をチェック ボックス内のテキストの左または右に制限していました。現在は、左、右、上、下、または中央を選択することができます。 |
Checked | True=Checked, False=UnChecked |
CheckState | このプロパティを使用すると、コントロールの実行時の 3 つの状態をデザイン時に設定することができます。選択肢は Checked、UnChecked、または Indeterminate です。 注: Indeterminate は ThreeState プロパティが True に設定されている場合にのみ設定できます。 |
FlatStyle | チェック ボックス コントロールの外見を変更します。オプションは Flat、PopUp、Standard、および System です。 |
Image | このチェック ボックス内に表示するイメージ。 |
ImageAlign | チェック ボックス内のイメージの位置。 |
ImageIndex | ImageList プロパティで設定された ImageList コントロールの中のイメージのインデックス番号。 |
ImageList | ImageIndex プロパティを使ってイメージを取得する ImageList コントロールの名前。 |
Text | Visual Basic 6.0 では、このプロパティは Caption と呼ばれていました。 |
ThreeState | このプロパティが True に設定されていると、CheckState プロパティを Indeterminate に設定することができます。また、ユーザーは Checked、Unchecked、および Indeterminate の間でトグルすることができます。 |
ラジオ ボタン コントロール
新しいプロパティ | 説明 |
AutoCheck | True に設定されている場合、コントロール上の任意の場所をクリックすると、状態が Checked から UnChecked に変更されます。 |
BackGroundImage | ラジオ ボタンの背景イメージを設定することができます。また、このイメージの上にテキストを追加することもできます。 |
CheckAlign | ラジオ ボタンの中のチェックの位置を決定します。Visual Basic 6.0 では、位置をチェック ボックス内のテキストの左または右に制限していました。現在は、左、右、上、下、または中央を選択することができます。 |
Checked | Visual Basic 6.0 では、このプロパティは Value と呼ばれていました。 |
FlatStyle | ラジオ ボタン コントロールの外見を変更します。オプションは Flat、PopUp、Standard、および System です。 |
Image | このラジオ ボタンの中に表示するイメージ。 |
ImageAlign | ラジオ ボタン内のイメージの位置。 |
ImageIndex | ImageList プロパティで設定された ImageList コントロールの中のイメージのインデックス番号。 |
ImageList | ImageIndex プロパティを使ってイメージを取得する ImageList コントロールの名前。 |
Text | Visual Basic 6.0 では、このプロパティは Caption と呼ばれていました。 |
TextAlign | ラジオ ボタンの中に表示されるテキストの位置揃えを制御します。オプションとしては Left、Right、Center、Middle、Top、Bottom、およびこれらの組み合わせが指定できます。 |
コンボ ボックス コントロール
新しいプロパティ | 説明 |
DisplayMember | ComboBox にロードされた個々のオブジェクトに基づいて、コントロールのリスト部分の項目を表示します。既定の DisplayMember は ToString メソッドです。 |
DropDownStyle | これは Visual Basic 6.0 では Style と呼ばれていました。選択肢は、Visual Basic 6.0 と同様に、Simple、DropDownList、および DropDown です。 |
DropDownWidth | コンボ ボックスのドロップダウンの部分の幅 (ピクセル数)。これは、フォーム上のコンボ ボックスの実際のサイズとは異なることがあります。 |
MaxDropDownItems | ユーザーがコンボ ボックスのリスト部分をドロップダウンしたときに表示される項目の数を設定することができます。 |
MaxLength | DropDownStyle が Simple に設定されているときに入力できる文字数の上限。 |
ValueMember | 選択された項目からデータを取得します。既定では ToString メソッドです。 |
リスト ボックス コントロール
新しいプロパティ | 説明 |
ColumnWidth | MultiColumn プロパティを True に設定したときの個々の列の幅。 |
DisplayMember | ListBox にロードされた個々のオブジェクトに基づいて、コントロールのリスト部分の項目を表示します。既定の DisplayMember は ToString メソッドです。 |
HorizontalExtent | HorizontalScrollbar プロパティが True に設定されている場合、このプロパティには、スクロール バーがスクロールできる合計の幅 (ピクセル数) を表す数値を入力することができます。 |
HorizontalScrollbar | データがこのボックスの幅に収まらない場合でも水平スクロール バーを表示したくない場合には、False に設定します。 |
ItemHeight | 固定フォントを使用する場合の、リスト ボックスの中の項目の高さ。 |
Items | Visual Basic 6.0 の ListBox の List プロパティを置き換えます。 |
MultiColumn | Visual Basic 6.0 の Columns プロパティを置き換えます。複数の列を表示したい場合は、この値を True に設定します。 |
ScrollAlwaysVisible | スクロール バーが必要なほどのデータがない場合でも、つねにスクロール バーを表示したい場合は、この値を True に設定します。リスト ボックスに格納されるデータに基づいて、リスト ボックスの適切な幅を決定するのに役立ちます。実行時にデータがロードされた状態でスクロール バーが見えていれば、データが大きくなったときにコントロールの正しい幅を決めやすくなります。 |
SelectionMode | Visual Basic 6.0 の MultiSelect プロパティを置き換えます。 |
UseTabStop | このリスト ボックスの中で、Tab 文字に次の列を表現するという機能を持たせたくない場合には、False に設定します。 |
ValueMember | 選択された項目からデータを取得します。既定では ToString メソッドです。 |
ピクチャ ボックス コントロール
新しいプロパティ | 説明 |
BackGroundImage | ピクチャ ボックスの背景イメージを設定することができます。また、このイメージの上にテキストを追加することもできます。 |
BorderStyle | None と Fixed に加えて、Fixed3D オプションを指定できます。 |
Image | Picture プロパティの代わりに、これが使用されます。 |
SizeMode | ピクチャがどのように表示されるかを制御します。値は Normal、StretchImage、AutoSize、および CenterImage です。 |
HScrollBar コントロール
新しいプロパティ | 説明 |
Maximum | Visual Basic 6.0 の Max プロパティを置き換えます。 |
Minimum | Visual Basic 6.0 の Min プロパティを置き換えます。 |
VScrollBar コントロール
新しいプロパティ | 説明 |
Maximum | Visual Basic 6.0 の Max プロパティを置き換えます。 |
Minimum | Visual Basic 6.0 の Min プロパティを置き換えます。 |
その他のコントロール
Visual Basic 6.0 の標準コントロール以外にも、さまざまなコントロールが Visual Basic .NET で更新されています。実際、その数はあまりに多く、個々のコントロールについて独自のドキュメントが必要となりかねません。読者は、このドキュメントに示した変更点から、.NET の新しいコントロールを扱うときにどのようなタイプの変更に遭遇するかが推測できるでしょう。
要約
.NET ではユーザー インターフェイスの作成方法に多数の変更が加えられています。これまでに使用してきたコントロールの一部は削除されていたり、大きく変更されたりしています。特定の動作を実現するために、いままでとは別のプロパティを使わなくてはならないこともありますし、ケースによってはコントロールの代わりにシステム クラスを使わなくてはならないこともあります。.NET コントロールは、古い ActiveX コントロールと比べて大幅に改善されていることがわかるでしょう。新しいプロパティとメソッドにより、これまでよりもきれいな Windows アプリケーションを、より簡単に開発できるようになるはずです。
最終更新日: 2002/1/30