クリックで切り替える


Dog0.bmp ~ Dog4.bmp の5枚の画像をマウスのクリックで切り替えます。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. Image List は画像を Images.Add() メソッドで登録して、インデックス(登録番号)で呼び出します。
    主にツールバーやリストビューなどにアイコンを張り付けるときに使用します。
    Image List の画像サイズは「1~256ピクセル」の大きさに統一しなければなりません。
    一般的には、アニメーションのような画像の切り替えは Bitmap Class を使うのでしょうが、 今回は Image List でプログラムしてみました。
    Bitmap のアニメーションは Sprite を切り替える を参照して下さい。
  2. 5枚の画像(Dog0.bmp~Dog4.bmp)を Image List に登録します。
    事前に C:\DATA\Test\ のフォルダーに格納しておいて下さい。
    プロジェクトの設定は Form を作成する を参照して下さい。
    完成したプログラムなので Command Line から Windows プログラムを実行 でもOKです。
    /************************************************/
    /*★ Image List で画像を切り替える    前田 稔 ★*/
    /************************************************/
    using System.Windows.Forms;
    using System.Drawing;
    
    class MyForm : Form
    {
        ImageList   imglist;
        int         index= 0;
        string[]    Files =
        { "C:\\DATA\\Test\\Dog0.bmp", "C:\\DATA\\Test\\Dog1.bmp", "C:\\DATA\\Test\\Dog2.bmp",
          "C:\\DATA\\Test\\Dog3.bmp", "C:\\DATA\\Test\\Dog4.bmp" };
    
        public MyForm()
        {   imglist = new ImageList();
            imglist.ImageSize = new Size(127, 77);
            imglist.TransparentColor = System.Drawing.Color.White;
            for (int i = 0; i < Files.GetLength(0); i++)
            {   imglist.Images.Add(new Bitmap(Files[i]));  }
    
            BackColor = SystemColors.AppWorkspace;
            Paint += new PaintEventHandler(MyHandler);
            MouseDown += new MouseEventHandler(OnMyMouseDown);
        }
    
        private void MyHandler(object sender, PaintEventArgs e)
        {   imglist.Draw(e.Graphics, 20, 20, index);
        }
    
        private void OnMyMouseDown(object sender, MouseEventArgs e)
        {   index = (index+1) % imglist.Images.Count;
            Invalidate();
        }
    }
    
    class form01
    {   public static void Main()
        {   MyForm mf = new MyForm();
            Application.Run(mf);
            MessageBox.Show("プログラムを終了します","Message Box");
        }
    }
    
  3. マウスのクリックで画像を切り替えて、Invalidate() で描画メソッドを呼び出します。
        private void OnMyMouseDown(object sender, MouseEventArgs e)
        {   index = (index+1) % imglist.Images.Count;
            Invalidate();
        }
        
  4. 次のソースコードが画像を描画するコードです。
    ウインドウの 20,20 の座標から index 番目の画像を描画します。
    imglist.Draw(e.Graphics, 20, 20, index);

超初心者のプログラム入門(C# Frame Work)