.NET TIPS

WindowsフォームでアニメーションGIFを再生/停止するには?

デジタルアドバンテージ 一色 政彦
2005/08/19

 Windowsフォームでは、PictureBoxコントロールを利用してアニメーションGIF(=Animated GIF。動画を扱うGIF画像の形式。1つのファイルの中に複数のGIF画像が格納されており、それを連続表示することでアニメーションする)を再生および停止することができる。

 次の画像はアニメーションGIF画像である。本稿ではこのアニメーションGIF画像をWindowsフォーム上で再生/停止するサンプル・プログラムを作成する。

本稿で使用するアニメーションGIFのサンプル(animation.gif)

■アニメーションGIFを再生する方法

 それではさっそくWindowsフォーム・アプリケーションを作成し、そのフォーム上にPictureBoxコントロールを配置して、そのImageプロパティにこのアニメーションGIFを設定してみよう。Visual Studio .NET(以降、VS.NET)を使って、それを行っているのが次の画面だ。

VS.NETを使ったアニメーションGIFの設定
VS.NETを使って、Windowsフォームのアプリケーションを作成し、そのフォーム上にPictureBoxコントロールを配置して、そのImageプロパティにアニメーションGIFを設定しているところ。
  フォーム上にPictureBoxコントロールを([ツールボックス]ウィンドウからドラッグ&ドロップして)配置する。
  配置したPictureBoxコントロールのImageプロパティにアニメーションGIF画像を設定する。本稿ではVS.NETの[プロパティ]ウィンドウを使用して、それを行っている。
  フォーム上にButtonコントロールを([ツールボックス]ウィンドウからドラッグ&ドロップして)配置する。このボタンは、アニメーションGIFの再生と停止の切り替えを実行するために用意した。ボタンのテキストには、再生時には「停止」を、停止時には「再生」を表示する。なお、PictureBoxコントロールに設定されたアニメーションGIFは、最初から再生している状態で表示されるので、ボタンのテキストの最初の表示は「停止」にしている。

 以上により作成したサンプル・プログラムをビルドし、実際に自分で実行して確認してみてほしい。実はこれだけでアニメーションGIFは自動的に再生されるのである。ただしこれだけでは、アニメーションGIFを停止させることができない。そこで次に、アニメーションGIFを停止させる方法について説明しよう。

■アニメーションGIFを停止させる方法

 PictureBoxコントロールのアニメーションGIFを停止させるには、PictureBoxコントロール自体を無効にしてしまえばよい(つまり、EnabledプロパティをFalseに設定すればよい)。PictureBoxコントロールは、コントロールを無効にしても、コントロール全体の表示がグレー色にはならないという特徴があり(これについては「TIPS:文字列や画像を無効状態で描画するには?」でも言及されている)、今回はこれを逆手に取って利用する。

 なおいったん停止したものを、また再生するには、逆にPictureBoxコントロールを有効にすればよい(つまり、EnabledプロパティをTrueに設定すればよい)。ただし、停止した位置から再生されるのではなく、先頭からあらためて再生されることになるので、注意してほしい。

 以上の方法によるアニメーションGIFの再生と停止を実際に記述したのが次のコードである。このコードは、先ほど作成したWindowsフォーム・アプリケーションのボタンのClickイベント・ハンドラを実装したものとなっている。

private void button1_Click(object sender, System.EventArgs e)
{
  if (pictureBox1.Enabled)
  {
    pictureBox1.Enabled = false;
    button1.Text = "再生";
  }
  else
  {
    pictureBox1.Enabled = true;
    button1.Text = "停止";
  }
}
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
  If pictureBox1.Enabled = True Then
    pictureBox1.Enabled = False
    button1.Text = "再生"
  Else
    pictureBox1.Enabled = True
    button1.Text = "停止"
  End If
End Sub
PictureBoxコントロールに設定されたアニメーションGIFの再生と停止を行うサンプル・コード(上:C#、下:VB.NET)

 以上で本稿のサンプル・プログラムの実装は完了である。

 次の画面は、完成したサンプル・プログラムを実行しているところだ。

サンプル・プログラムの実行結果
この実行画面では、アニメーションGIFを停止させた状態となっている。そのため、ボタンのテキスト表示が「再生」となっている。

 このサンプル・プログラムの[再生/停止]ボタンをクリックして、正しくアニメーションの再生/停止状態が切り替われば成功だ。End of Article

カテゴリ:Windowsフォーム 処理対象:アニメーション
カテゴリ:Windowsフォーム 処理対象:PictureBoxコントロール
使用ライブラリ:PictureBoxコントロール
関連TIPS:文字列や画像を無効状態で描画するには?
 
この記事と関連性の高い別の.NET TIPS
[ASP.NET AJAX]AnimationコントロールでWebページにアニメーション効果を適用するには?(基本編)
[ASP.NET AJAX]UpdatePanelAnimationコントロールで部分更新前後にアニメーションを実行するには?
[ASP.NET AJAX]AnimationコントロールでWebページにアニメーション効果を適用するには?(制御要素編)
WAVEサウンド(.wavファイル)を非同期で再生するには?
[ASP.NET AJAX]AnimationコントロールでWebページにアニメーション効果を適用するには?(アニメーション要素編)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間