Visual Basic 初級講座
VB.NET 2002 対応 VB.NET 2003 対応 VB2005 対応 VB2008対応

 

Visual Basic 中学校 > 初級講座 >

第16回 コントロールの鳥瞰

今回からは数回にわたって「コントロール」に焦点をあてて解説をします。今までで既にボタンやテキストボックス・ラベルなどいくつかのコントロールが登場しましたが、今回はそれらも含めてすべての標準コンロールについて使い道や機能、具体的な使用方法を説明します。

この回の要約

・全ての標準コントロールの簡単な紹介

 

1.コントロールとは

 

コントロールはVBのプログラムになくてはならない重要な部品です。代表的なものに、テキストボックスやラベル、ボタンなどがあります。フォームもコントロールの一種です。またコントロールはクラスの一種です。

コントロールにはフォームに貼り付けて使うものと、フォームに貼り付けないで使うものがあります。たとえば、テキストボックスやボタンなどは当然フォームに貼り付けて使いますが、タイマーやOpenFileDialog(読み方:OpenFileDialog = オープンファイルダイアログ)などはフォームに貼り付けることができません。

試しにツールボックスに並んでいるタイマーのアイコンをダブルクリックすると、フォームではなく、フォームの下の部分にコントロールが表示されるのが分かります。

それから、Webアプリケーション開発に使用するコントロールは同じ名前のものであってもここで説明しているコントロールとは関係ありません。これらは全然別物ですのでご注意ください。ここではWindowsアプリケーション開発に使用するコントロールを対象としています。

 

2.コントロールの種類

 

今回ははじめてコントロールをテーマにして説明していますので、ざっと標準のコントロールについて紹介します。どんなコントロールがあるのかちらっとでも知っておくことは重要です。

 

2−1.表示に関するコントロール

Label ラベル 文字の表示
  WebBrowsser ウェブブラウザー VB2005以降。htmlファイルをはじめさまざまなファイルを表示できる

数あるコントロールの中でも文字を表示することが専門のコントロールはラベル(Label)だけです。表示だけが目的の場合はまずラベルの使用を検討します。

また、ラベルを細くすることによって線を表現したり、文字を表示させないで四角形を表現させることもできます。 最もよく使うコントロールの一つです。

WebBrowserコントロールはVB2005以降で使用可能ですが、VB.NET2002, VB.NET2003でもActiveXに参照設定することにより同様の機能を使うことができます。この詳細については今回は説明しません。

 

2−2.入力に関するコントロール

TextBox テキストボックス 文字の入力
RichTextBox リッチテキストボックス 書式付での文字の入力
  MaskedTextBox マスクドテキストボックス VB2005以降。自動入力制限つきで文字を入力できる

ユーザーがキーボードから自由に入力できるコントロールはテキストボックスとリッチテキストボックスです。ほとんどの場合テキストボックスを使用しますが、ワープロのように部分的に色を変えたり、フォントを変えたりなど豊富な表現力が必要な場合はリッチテキストボックスを使用します。

■画像1:RichTextBoxの使用例 。このように文字に色をつけたり、サイズを変えたり、斜体にしたりといろいろできる。

RichTextBoxを使って現在選択されている文字を赤の太字にするには次のようにします。

VB.NET 2002 対応 VB.NET 2003 対応 VB2005 対応 VB2008対応

Dim currentFont As Font = RichTextBox1.SelectionFont

RichTextBox1.SelectionColor = Color.Red

RichTextBox1.SelectionFont = New Font(currentFont.FontFamily, currentFont.Size, FontStyle.Bold)

■リスト1:RichTextBoxで選択されている文字の色を赤の太字にする例。

ただし、豊富な表現力が必要な場合でも「表示」のみで足りる場合はWebBrowserコントロールを使用します。実際のところリッチテキストボックスの使用が適切な場面はほとんどありません。

MaskedTextBoxはVB2005以降で使用可能です。このコントロールはユーザーに「自由に」入力させるのではなく、入力に制限をつけることができます。たとえば、「A-123」や「B-250」のように決まった形式で入力して欲しい場面がよくあります。MakedTextBoxはこのような形式をあらかじめMaskプロパティ(読み方:Mask = マスク)に設定しておくことによってユーザーにその形式を強制することができます。

なお、上記で例としてあげた「A-123」や「B-250」を表現するにはMaskプロパティに「?-000」と設定します。

 

 

2−3.ユーザーの選択を受け取るコントロール

Button ボタン よくある「ボタン」。
CheckBox チェックボックス 複数選択可能。
DomainUpDown ドメインアップダウン 複数の候補の中から文字列を選択させる。
LinkLabel リンクラベル インターネットによくある「リンク」のような機能。
NumericUpDown ニューメリックアップダウン 数字を選択させる。
RadioButton ラジオボタン 複数の中から1つを選択させる場合に使う。

ユーザーに選択させることが目的のコントロールは豊富に用意されています。最もよく使うのがボタンです。

CheckBoxは複数の候補の中から1つ以上をユーザーに選択させることができます。

以下はCheckBoxの使用例です。実際にマウスでチェックできます。

使用したことのあるプログラム言語を選択してください。

Visual Basic
Visual C#
Delphi

RadioButtonは複数の候補の中から1つだけをユーザーに選択させることができます。

以下はRadioButtonの使用例です。実際にマウスでチェックできます。

あなたのプログラム経験はどのくらいですか?

3年未満
3年〜5年
5年以上

NumericUpDownは複数の数字の中から、DomainUpDownは複数の文字列の中から1つをユーザーに選択させます。

■画像2:NumericUpDownの使用例

LinkLabelはWebサイトの「リンク」のような機能を提供しますが、プログラムからいろいろと制御することができます。

■画像3:LinkLabelの使用例

次のプログラムはLinkLabelをクリックするとWebサイトを表示する例です。

VB.NET 2002 対応 VB.NET 2003 対応 VB2005 対応 VB2008対応

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    LinkLabel1.Links.Add(0, LinkLabel1.Text.Length, "www.excite.co.jp")

End Sub

Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked

    System.Diagnostics.Process.Start(e.Link.LinkData)

End Sub

■リスト2

 

2−4.一覧形式で表示するためのコントロール

CheckedListBox チェックドリストボックス チェックボックスつきの一覧表示。
ComboBox コンボボックス ドロップダウン可能な一覧表示。入力も可能。
DataGrid データグリッド 一覧表形式での表示・入力が可能。データベースとの連動が得意。
  DataGridView データグリッドビュー VB2005以降。詳細不明。DataGridのようなもの?
ListBox リストボックス 単純な文字の一覧表示。
ListView リストビュー 4つの表示モードが選べる多機能な一覧表示。
  PropertyGrid プロパティグリッド VB2005以降。プロパティウィンドウ。実際のプロパティと連動可能。
TreeView ツリービュー ツリー形式での表示。フォルダツリーの表示等に最適。

表や一覧形式で表示するためのコントロールもさまざまなものが用意されています。

DataGridは表形式で表示・入力するためのコントロールですが、なれないと使い方が難しいです。またExcelのようなこった機能を実現することはできません。

■画像4:DataGridの使用例。

VB2005以降ではさらに使いやすくなり機能が追加されたDataGridViewコントロールがあります。標準的にはそちらのDataGridViewコントロールを使用することになり、DataGridは人々の記憶の中に忘れ去られていくことが運命づけられています。

 

ListBox, CheckedListBox, ComboBoxは基本的な使い方が同じです。

次のプログラムはListBoxに項目を追加しますが、CheckedListBoxでもComboBoxでも全く同じようにして項目を追加することができます。

VB.NET 2002 対応 VB.NET 2003 対応 VB2005 対応 VB2008対応

ListBox1.Items.Add("平安時代")
ListBox1.Items.Add("鎌倉時代")
ListBox1.Items.Add("南北朝時代")
ListBox1.Items.Add("室町時代")

■リスト3

■画像5:ListBoxの使用例

CheckedListBoxListBoxに行ごとにチェックをオン・オフできる機能が追加されたものです。CheckBoxつきのListBoxといったところです。

■画像6:CheckedListBoxの使用例

ComboBoxは、ListBoxと似ていますが、狭い場所でも表示できるように工夫されていて、ユーザーがドロップダウンしない限り一覧は表示されません。また、ComboBoxにはTextBoxと同じように入力することもできます。もちろん入力できないようにすることもできます。この辺りの制御はDropDownStyleプロパティ (読み方:DropDownStyle = ドロップダウンスタイル)を通して行います。

■画像7:ComboBoxの使用例。左は平常時。右はマウスでドロップダウンしたところ。

ListViewは、さまざまな一覧表示機能を提供します。4つの表示形式をサポートし、Windowsのフォルダの表示と同じようすることも可能です。

■画像8:ListViewの使用例

この画像は一覧表形式で表示しているところです。このほかにもアイコン形式などが選択できます。

 

TreeViewはツリー表示を行います。これもWindowsのエクスプローラのフォルダツリーのようなものです。

■画像9:TreeViewの使用例

次のプログラムはTreeViewを使ってフォルダツリーを作る例です。単純化するためにシンプルですが、項目ごとにアイコンを表示させたりもできます。アイコンを表示させる場合は後で紹介するImageListと連動させることになります。

VB.NET 2002 対応 VB.NET 2003 対応 VB2005 対応 VB2008対応

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    For Each Drive As String In IO.Directory.GetLogicalDrives
        TreeView1.Nodes.Add(Drive)
   
Next

    TreeView1.SelectedNode = TreeView1.Nodes(1)

End Sub

Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect

    Try

        Dim oFolder As New IO.DirectoryInfo(e.Node.FullPath)

        For Each Folder As IO.DirectoryInfo In oFolder.GetDirectories
            e.Node.Nodes.Add(Folder.Name)
       
Next

    Catch ex As Exception
        MsgBox(ex.Message)
    End
Try

End Sub

■リスト4

PropertyGridはVB2005から導入されました。VBのプロパティウィンドウと同じ機能を提供します。これをフォームに貼り付けると実行時にプロパティ一覧を編集すること もできますし、専用のデザイナ画面で活用することもできます。大変便利なコントロールですので、クラスライブラリやフレームワークの作成者は機能の概要は知っておくべきです。

DataGridViewもVB2005からの登場です 。VB2005以降では標準的に使用されるグリッドコントロールでう。DataGridの使い勝手を良くし たうえに機能が追加されています。

 

 

2−5.画像を表示するためのコントロール

PictureBox ピクチャーボックス 画像を表示する

画像表示専用のコントロールはPictureBoxです。PictureBox以外でもフォームやボタンなどさまざまなものに画像を表示することは可能ですが、PictureBoxはその機能専門です。

画像の伸縮表示もできます。

なお、VB6のPictureBoxにはコンテナとしての機能もありましたが、VB.NET2002以降のPictureBoxは画像を表示する機能しかありません。

 

2−6.コントロールをまとめるためのコントロール

  Form フォーム コントロールを配置するための基本的なコントロール。
  FlowLayoutPanel フロゥレイアウトパネル VB2005以降。隅から順にコントロールを自動配置するコンテナ。
GroupBox グループボックス RadioButtonをグループ化するのによく使う。
Panel パネル 単純なコンテナ。Splitterとともに使われることが多い。
  SplitContainer スプリットコンテナ VB2005以降。領域サイズ変更機能付きコンテナ。
TabControl タブコントロール タブページ切り替え機能付きコンテナ。
  TableLayoutPanel テーブルレイアウトパネル VB2005以降。表形式にコントロールを自動配置するコンテナ。
ToolBar ツールバー ツールバーのためのコンテナ。

コントロールをまとまりとして扱うためのコントロールも用意されています。その代表はフォームです。

コントロールをまとまりとして扱うコントロールのことを「コンテナ」と呼ぶ場合もあります。まとまりとして扱う利点はプロパティの制御が一行でできる点にあります。たとえば、Panelの中に10個のテキストボックスを配置したとしてもそのPanelVisibleプロパティをFalseにすることで、10個のテキストボックスをすべて非表示にすることができます。

また、Dock(読み方:Dock = ドック)やAnchor(読み方:Anchor = アンカー)などの自動配置のプロパティとコンテナを組み合わせることにより、より楽に自動配置を行える場合もあります。コントロールの自動配置については初級講座第18回 コントロールの配置 で解説します。

Panelはまさに単純なコンテナ機能を提供します。Panelの中にテキストボックやボタンなどのコントロールを配置することができます。

GroupBoxRadioBoxをグループ化するのに良く使われますが、通常のコンテナとしても利用可能です。

■画像10:GroupBox

画像をみるとわかるようにGroupBoxを囲むように細いへこみ線が描かれます。このへこんだ線だけが目的でGroupBoxを使う場合もあります。

TabControlはよくあるWindowsのプロパティ画面のように1つの画面の中でタブページを切り替えられるようにするコントロールです。下の画像みれば一目瞭然でしょう。

■画像11:TabControl

ToolBarはツールバーを表現するのに使用しますが、現在のところ私にはあまりメリットが感じられません。Officeシリーズのツールバーのように高機能にしてもらいたいものです。

SplitContainerはVB2005以降で使用可能です。フォームの中で領域をわけてマウスで自由に領域の大きさを変られるようにします。文字にすると分かりにくいですがよくある機能です。Windowsのエクスプローラの左側のフォルダツリーと右側のフォルダの内容の領域を真ん中の縦線の位置をマウスでずらすことにより自由に大きさを変更できるのと同じです。

なお、VB.NET2002と、VB.NET2003ではこの機能はSplitterによって実現されます。

FlowLayoutPanelTableLayoutPanelもVB2005から導入されるコントロールで、内部のコントロールを自動配置するコンテナです。自動配置の利点は、フォームの大きさが変更されてもコントロールが自動的にならびかわる点ですが、自動配置にはもっと便利な別の機能(DockプロパティとAnchorプロパティ)が用意されているので、この2つの出番はあまり多くないようです。

 

2−7.メニューに関するコントロール

ContextMenu コンテキストメニュー 右クリックしたときのメニューを表示するためのコントロール。
MainMenu メインメニュー 画面上部によくある[ファイル]や[編集]、[表示]のようなメニューを表示するためのコントロール。

メニューもコントロールの一種です。通常のメニューを表現するにはMainMenuを、右クリックしたときに表示されるポップアップ(コンテキストメニュー)を表示するにはContextMenuを使用します。

MainMenuはツールボックスでMainMenuをダブルクリックすると自動的に配置され、その後は独特のデザイン手段を使って構成していくことになります。このデザイン手段については後日説明するつもりですが、直感的でとても分かりやすいものです。

ContextMenuは配置後、各コントロールのContextMenuプロパティに指定しないと有効になりません。また具体的なメニューの内容はMainMenuと同様に独特のデザイン手段を使って構成します。

 

2−8.ヘルプに関するコントロール

HelpProvider ヘルププロバイダー F1キーが押されたときに自動的にヘルプを表示してくれる。
ToolTip ツールチップ マウスを移動したときに自動的にツールチップを表示してくれる。

HelpProviderはヘルプを表示するのを助けてくれるコントロールです。HelpProviderを使用するとコードを1行も書くことなく、プログラムにヘルプを組み込むことができます。

ただし、HelpProviderにはヘルプファイルを作ってくれる機能はありません。ヘルプファイルは 別にあらかじめ作成しておく必要があります。ヘルプファイルを作成するにはマイクロソフト社の「HTML Help Workshop」(HTML ヘルプ ワークショップ)を使用しますが、他のソフトでも作成可能です 。最近ではXMLコメントからヘルプファイルを自動的に生成してくれるNDocを使用している方も多いようです。XMLコメントについては初級講座第43回 プログラムの質をご覧ください。

Test.chmというヘルプファイルがある場合、HelpProviderHelpNamespaceプロパティ(読み方:HelpNamespace = ヘルプネームスペース)にそのファイルを指定し、テキストボックスの「HelpProvider1のShowHelp」プロパティをTrueに設定するだけで、そのテキストボックスでF1キーが押された場合に自動的にヘルプが表示されます。

なお、HelpProviderを配置した時点で自動的に各コントロールにHelpProviderと連動するためのプロパティが追加されます。

他のプロパティも設定することで表示されるページなどを制御することも可能です。

 

ToolTipはマウスをあわせた時に簡単に表示されるヘルプを表しています。このヘルプは「ヒント」、「ツールチップ」などと呼ばれます。

■画像12:ToolTipが動作しているところ

ToolTipも配置後、各コントロールのプロパティにToolTipと連動するためのプロパティが追加されるので、たとえば、テキストボックスの「ToolTip1 の ToolTip」プロパティを「テスト」とするだけで、実行時にそのテキストボックスにマウスを移動すると「テスト」というツールチップが表示されるようになります。

 

2−9.日付

DateTimePicker デイトタイムピッカー 日付を入力・選択するためのコントロール。
MonthCalendar マンスカレンダー 日付を選択するためのコントロール。

日付を選択するためには高機能なコントロールが用意されているので積極的に利用しましょう。これらのコントロールは配置するだけで自動的に機能します。

MonthCalendarは文字通りカレンダーです。ユーザーはカレンダーの中から特定の日付を選択することができます。

■画像13:MonthCalendarDateTimePickerもドロップダウンすると同じものが表示される。

DateTimePickerは普段は日付を文字でコンパクトに表示していますが、マウスでドロップダウンするとカレンダーが表示されます。

 

2−10.量を調節するコントロール

HScrollBar 水平スクロールバー 横方向の量を調節。スクロールによく使用される。
ProgressBar プログレスバー 進行状況表示によく使用される。表示専用。
TrackBar トラックバー 一般的な量の調整に使用される。目盛りつき。
VScrollBar 垂直スクロールバー 縦方向の量を調節。スクロールによく使用される。

量を調節するコントロールの代表はスクロールバーです。スクロールバーには横方向である水平スクロールバーのHScrollBarと、縦方向である垂直スクロールバーVScrollBarが用意されています。

通常は名前どおり何かのスクロールと関連付けて使用しますが、どのように使用する場合でもプログラムで制御する必要があります。テキストボックスなどに自動的に表示されるスクロールバーは自動的に機能するので自分で制御する必要はありません。これらのコントロールに付属しているスクロールバーはここでいうHScrollBar, VScrollBarと外見は似ていますが別のものです。

TrackBarも機能はHScrollBarとほとんど同じですが見かけが違います。TrackBarの場合はユーザーに「スクロール」という印象を与えませんので、スクロール以外の用途で量を表現するならばTrackBarをお勧めします。

■画像14:TrackBar

ProgressBarは表示専用です。よく作業状況を表現するにのに使われます。インターネットで大きなファイルをダウンロードするときに表示される進行状況に似ています。

■画像15:ProgressBar

 

2−11.印刷

PageSetupDialog ページセットアップダイアログ  
PrintDialog プリントダイアログ  
PrintDocument プリントドキュメント  
PrintPreviewControl プリントプレビューコントロール  
PrintPreviewDialog プリントプレビューダイアログ  

印刷機能に関しては私はほとんどわかりません。プリンタから印刷したり、印刷前にプレビューしたりできるようです。

次のプログラムはPrintDocumentPrintPreviewDialogを使用して印刷プレビューを表示する例です。実行するにはこの2つの他にButtonをフォームに配置してください。

VB.NET 2002 対応 VB.NET 2003 対応 VB2005 対応 VB2008対応

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   
    PrintPreviewDialog1.Document = PrintDocument1
    PrintPreviewDialog1.ShowDialog()

End
Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

    Dim f As New Font("MS 明朝", 64, FontStyle.Bold)
    e.Graphics.DrawString(
"こんにちは", f, Brushes.Red, 10, 10)

End
Sub

■リスト5

実行すると次のようなプレビューが表示されます。

■画像16:PrintDocumentPrintPreviewDialog

印刷についてのより詳しい説明は、初級講座第35回 印刷をご覧ください。

 

これらのコントロールを使用した標準の印刷機能はプログラムから印刷内容を細かく制御する必要があります。デザイナなどを使って楽をしたい場合にはサードパーティ製、つまりマイクロソフト社以外の製品を使用します。たとえば、ActiveReportsやCrystalReportsです。これらの製品もVBの他のコントロールと同じように扱えてしかも高機能です。その分値段も高いですが。ActiveReportsは無料で使えるトライアル版がかなりお得なので興味があったらダウンロードしてみてください。(トライアル版の使用条件に気をつけてください。配布することはできません。)

マイクロソフト社の製品でもSQL Serverに付属するReporting Service機能を使用してVisual Basicから印刷することもできます。業務でシステムを構築するときには事前にどの仕組みを使用して印刷を行うかよく検討してください。

 

2−12.ダイアログ

ColorDialog カラーダイアログ 色の選択ダイアログを制御する。
FolderBrowserDialog フォルダブラウザダイアログ VB.NET2003以降。フォルダ選択ダイアログを制御する。
FontDialog フォントダイアログ フォントの選択ダイアログを制御する。
OpenFileDialog オープンファイルダイアログ ファイルを開くダイアログを制御する。
SaveFileDialog セーブファイルダイアログ 名前を付けてファイルを保存するダイアログを制御する。

この場合のダイアログとは一定の機能をもった選択画面のことです。たとえば、開くファイルを選択するためにはOpenFileDialogを使用します。OpenFileDialogを使用すると、Windows標準の「ファイルを開く」ときの画面が表示されます。

他に、保存するファイル名を選択するSaveFileDialog、フォルダ選択ダイアログであるFolderBrowserDialog, フォントを選択するためのFontDialog, 色を選択するためのColorDialogが使用可能です。これらのダイアログは高機能なうえにプログラムは簡単ですので重宝します。

なお、FolderBrowserDialogはVB.NET2003以降で使用可能です。

■画像16:SaveFileDialogによって、「名前を付けて保存」ダイアログが表示されたところ。

ただ、これらのコントロールは配置しないで、すべてをプログラムから制御することもできるので、プログラムからの制御を好むプログラマも多いようです。

 

2−13.その他

ErrorProvider エラープロバイダ (不明。目下研究中。)
ImageList イメージリスト TreeViewListViewと連動して画像を管理する。
NotifyIcon ノティファイアイコン タスクトレイにアイコンを表示し、制御する。
  SoundPlayer サウンドプレイヤー VB2005以降。wavファイルの再生を制御する。
Splitter スプリッター ユーザーがマウスで表示領域の大きさを変更できるようにする。
StatusBar ステータスバー ステータスバーを制御する。
Timer タイマー 一定時間ごとにイベントを発生させる。

他にもいろいろなコントロールが用意されています。

ErrorProviderはエラーのある箇所にアイコンとメッセージを表示します。

■画像17:ErrorProvider

この画像の例は以下のコードで作成しました。フォームにTextBoxを2つとErrorProviderを1つ貼り付けて実行すると実際に試すことができます。

コードの中で数値変換可能か調べるためにTryParseメソッドを使っているので、VB2005以上でないと実際に動かして試すことはできませんが、ErrorProvider自体はVB.NET(2002)以降であれば使用できます。

VB2005 対応 VB2008対応

Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating

    If
Len(TextBox1.Text.Trim) = 0
Then
       
ErrorProvider1.SetError(TextBox1, "省略できません。")
   
Else
       
ErrorProvider1.SetError(TextBox1, "")
    End
If

End Sub
Private Sub TextBox2_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating

    If
Integer.TryParse(TextBox2.Text, 0) = False
Then
       
ErrorProvider1.SetError(TextBox2, "数値を入力してください。")
   
Else
   
    ErrorProvider1.SetError(TextBox2, "")
    End
If

End Sub

■リスト6

個別のコントロールではなくデータと連動させる使い方もあります。

ErrorProviderの使い方についてはtakさんからメールでご教授いただきました。ありがとうございます。

 

ImageListTreeViewListViewなどと連動するための画像を管理します。

この機能を使えばTreeViewListViewで簡単にアイコンを表示することができます。

図解基礎解説 ImageListの使用方法をご覧ください。

 

NotifyIconはタスクトレイのアイコンを表します。NotifyIconを使うと気軽にタスクトレイにアイコンを表示して制御することができます。常駐アプリを作る場合などには重宝しそうです。なにより「手軽さ」が嬉しいです。

詳しい使用方法はクラスライブラリ詳解 NotifyIconをご覧ください。

 

SoundPlayerはVB2005以降で使用可能で、wavファイル再生の簡単を制御 が行えます。以下の例ではwavファイルを再生します。

Dim Player As New System.Media.SoundPlayer

Player.SoundLocation =
"C:\Windows\Media\chord.wav"
Player.Play()

■リスト7

 

Splitterはコントロールの配置に関する便利な機能を提供します が、VB2005以降ではさらに便利で使いやすいSplitContainerコントロールが導入されましたのでそちらを使用してください。現在ではSplitterコントロールは使用されなくなっています。SplitContainerについてはこの記事の少し上、2−6.コントロールをまとめるためのコントロール のところで取り上げています。

 

StatusBarはアプリケーションにステータスバーを追加します。このステータスバーは手軽に使える上に表示用には十分な機能を提供してくれます。あなたのアプリケーションにも是非ステータスバーを導入してみてください。

StatusBarについて特別に説明している記事はありませんが、初級講座第25回 実技2 フォルダ情報一覧 で作成するサンプルで使用しています。

 

Timer(タイマー)は一定時間ごとに処理をしたいときに使います。

次のプログラムはTimerを使って、赤い円が左から右へ向かって徐々に移動するようにします。Timerの説明のためですのでグラフィックスとしての性能は悪いです。(ゲームのように綺麗に描画するにはDirectXを使います。)

VB.NET 2002 対応 VB.NET 2003 対応 VB2005 対応 VB2008対応

Dim X As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Timer1.Interval = 200 '0.2秒ごとにTickイベントを発生させる。
   
Timer1.Enabled = True 'Timer1を有効にする。

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

    Dim g As Graphics = Me.CreateGraphics

    X += 5
    g.Clear(Color.Black)
    g.FillEllipse(Brushes.Red, X, 20, 40, 40)

End Sub

■リスト8:Timerの使用例

このプログラムを見ていただければすぐに分かると思いますが、TimerではIntervalプロパティ(読み方:Interval = インターバル)を使ってTickイベント(読み方:Tick = ティック)を発生するタイミングを制御します。Intervalプロパティには時間をミリ秒単位で指定します。つまり、Intervalプロパティが1000のときは1秒おきにTickイベントが発生します。

 

3.今後の方針

 

今回はざっと全標準コントロールを紹介しました。これで、どのような場面でどのコントロールを使えばよいのか簡単に理解していただけたと思います。次回からは、コントロールに共通の機能を説明した上で、重要なコントロールについては個別に取り上げていこうと考えています。