【VB.Net】PictureBoxとTimerを使ってスライドショーアプリを作ってみる

どうも!リョクちゃです。

久しぶりの投稿となってしまいました。。。

今回は前回紹介したPictureBoxと新たにTimer、これらのコントロールを使って

ランダムに画像が再生されるスライドショーを作ってみたので紹介していきます。

ちなみにスライドショーとは、画像や資料を順番に表示する機能のことを指します。

前回の記事はこちらになります。

VB.NetにはPictureBoxと呼ばれる画像を表示することができるコントロールがあります。本記事ではPictureBoxに画像を表示する方法を簡単に例を交えて紹介しています。



準備編

今回作成するWindowsフォームアプリケーションについて、

各章立てて触れていきます。

スポンサーリンク




準備編:フォームの作成

以下のフォームを作成していきます。

※Timerコントロールも配置しています。

Noアイテムコントロール名
1PictureBoxPictureBox
2ButtonButton1
3ButtonButton2
4TimerTimer1

準備編:スライドショーフォルダの作成

スライドショーで表示する画像を下記フォルダを作成し、あらかじめ準備をしておきます。

今回はデスクトップ上に新たにフォルダを作成し、作成したフォルダに表示する

画像ファイルを保存しておきます。

筆者は以下のフォルダを作成しました。

C:\Users\ユーザ名\Desktop\SlideTest

※ユーザ名には自身のPC端末のユーザ名が割り当てられます。

OSによっては異なるかと思います。

SlideTestフォルダに画像ファイルを保存しています。

実行環境

筆者の実行環境は、

  • VisualStudio2019
  • Windows 10 64bit
  • .Net Framework 4.5.1

になります。

※ Windows7 8 8.1でも動作はできますが、画面デザインの表示が変わるかもしれません。

アプリケーションの目的

スライドショー開始ボタンを押すとスライドショーフォルダにある画像ファイルを

ランダムに1秒ごとにPictureBoxに表示し、スライドショー停止ボタンを押すと

現在表示されている画像でスライドショーが停止する。

これらの機能を満たし実行できることを目的とする。

プログラム編

定数宣言

最初に作成したスライドショーフォルダのパスを定数として宣言します。

変数宣言

変数として、以下の変数をあらかじめ宣言しておきます。

ボタンイベント

スライドショー開始ボタンと停止ボタンを押したときに発生するクリックイベントを

作成しておきます。

タイマーイベント

設定した時間おきに動作するIntervalイベントを作成しておきます。



処理

各ボタンを押した後の処理を書いていきます。

スライドショー開始ボタン押下処理

フォルダ内の画像ファイルパスを取得

スライドショーを開始するフォルダから画像ファイルのパスを取得するコードを書きます。

System.IO.Directory.GetFiles(“フォルダのパス”)

と書くことで、フォルダ内にあるファイルのパスを取得し、

String()の配列として結果が得られます

画像ファイルがフォルダにあるなら処理ができるようにします。

変数の初期化

あらかじめ宣言した変数を初期化し、変数に画像ファイルのパスを格納していきます。

タイマーの設定

タイマーの間隔を1秒に設定し、タイマーをスタートさせます。

タイマーの間隔を設定するには、

Timer.Interval = ミリ秒

と書きます。

1秒は1000ミリ秒になります。

タイマー指定間隔経過後の処理

PictureBoxの設定

PictureBoxに表示される画像のサイズを変更します。

PictureBoxに表示する画像をランダムで決めるため、下記コードを記述します。

PictureBoxへ画像を表示

rdPicture変数を使い、PictureBoxへ画像を表示するコードを書きます。

これはlstPicture変数に含まれる画像ファイルパスを

rdPicture.Next(lstPicture.Count-1)と書くことで、

lsPicture変数に含まれている画像ファイルの数-1した値を

rdPicture.Nextでランダムに呼び出します

今回は、lstPictureに含まれる画像ファイルの数は5枚、

lstPicture変数の開始番号は0からになるので-1としています。

rdPicture.Next(4)となり、0~4をランダムで呼び出すことができます

こうすることで、ランダムなスライドショーを作ることができます。

スライドショー停止ボタン押下処理

タイマー停止処理を記述します。

停止ボタン押下処理はこれだけになります。

最後に全体のコードを貼っておきます。

実行編

作成したコードを実行していきます。

起動時

スライドショー開始ボタンを押します。

1秒おきに画像がランダムに切り替わります。

ちなみに画像は、筆者が学生時代に作成した小型ロボットの画像になります。

次に停止ボタンを押します。

停止ボタン押下後、表示されている画像のまま切り替わることはありません。

また開始ボタンを押すとスライドショーが再開されます。

画像だと実行結果がいまいちわかりにくいかもしれないので、

作成したコードを自身の環境で試していただければなと思います。

まとめ

PictureBoxの応用例として、Timerを使ったランダムなスライドショーを

実際に作って解説していきました。

Windowsフォームアプリケーションでは、各サポートされているコントロール同士を

組み合わせることで様々な使い方があります。

時に爆発的な効果を発揮し、万人受けするようなアプリケーションもあります。

今回はそのきっかけとして読者の方にイメージを掴んでいただけたらなと思います。

最後までご覧いただきありがとうございます。

・こちらの書籍を参考にVB.Net勉強しています。

スポンサーリンク