Beep 音を鳴らす

マウスのクリックで Beep 音を鳴らす。

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

プロジェクトの設定

  1. マウスのクリックを検出する方法には「デリゲート」と「オーバーライド」があります。
    どちらを使うかは、そのときの気分と好みの問題でしょうか。 (^_^;)
    今回は「オーバーライド」を使います。
  2. Beep 音には「メッセージ(情報), 一般の警告音, ・・・」など幾つかの種類があります。
    クリックする毎に順番に切り替えて鳴らしてみましょう。
  3. 空のプロジェクトから作成した Windows Mode のソースコードです。
    /*******************************************************/
    /*★ Click を override して Beep を鳴らす    前田 稔 ★*/
    /*******************************************************/
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        int mode = 0;
    
        public MyForm()
        {
        }
    
        protected override void OnMouseDown(MouseEventArgs e)
        {
            switch(mode)
            {   case 0:
                    //メッセージ(情報)を鳴らす
                    System.Media.SystemSounds.Asterisk.Play();
                    break;
                case 1:
                    //一般の警告音を鳴らす
                    System.Media.SystemSounds.Beep.Play();
                    break;
                case 2:
                    //メッセージ(警告)を鳴らす
                    System.Media.SystemSounds.Exclamation.Play();
                    break;
                case 3:
                    //システムエラーを鳴らす
                    System.Media.SystemSounds.Hand.Play();
                    break;
                case 4:
                    //メッセージ(問い合わせ)を鳴らす
                    System.Media.SystemSounds.Question.Play();
                    break;
            }
            mode = (mode+1)%5;
        }
    }
    
    class mouse
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    
  4. int mode が演奏する Beep 音の番号で、クリックする毎に切り替えます。
    int mode = 0;
  5. OnMouseDown をオーバーライドします。
    マウスのクリックで mode が指す Beep 音を演奏します。
    演奏が終わると mode を順番に切り替えます。
    一応5種類の音を鳴らしているのですが、環境によって Beep 音が鳴らなかったり、同じ音が演奏される場合があります。
        protected override void OnMouseDown(MouseEventArgs e)
        {
            switch(mode)
            {   case 0:
                    //メッセージ(情報)を鳴らす
                    System.Media.SystemSounds.Asterisk.Play();
                    break;
                case 1:
                   ・・・
            }
            mode = (mode+1)%5;
        }
    

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