C#チュートリアルとして,マのネタ帳にあるタスクトレイ常駐型テレホマンマスコットを作成します.
午後11時になると突如登場するテレホマン。ノスタルジーに浸れるデスクトップマスコット。
_____________ ___ / /´∀`;::::\< テレホマン フライングアタ~~~~ック!!! / /::::::::::| \_____________ | ./| /:::::|::::::| | ||/::::::::|::::::| 説明しよう! テレホマンフライングアタックとは 23時まで残すところ2分59秒の瞬間に繋ぐテレホマンの事である。 へっぽこプロバイダだと 回線が23時の瞬間に一斉に埋まってしまうため、 10円損してでも回線をゲットするという目的から生まれた大技である! その凄まじいまでのインターネットへの執念は DSLマンやFTTHマンの回線速度を上回る最強の攻撃力を発揮する。 がんばれ ぼくらのテレホマン みんなのテレホマン
こんな感じで
今回は画像で用意しました. AAでもいいですよ.
で作成を開始しましょう.
まずはFormの背景をテレホマンにしましょう.BackgroundImageプロパティに先ほどつけ込んでおいたテレホマンを指定しましょう. このままだと繰り返して表示されてウザイのでBackgroundImageLayoutプロパティをZoomとかStretchにするといいでしょう.
Formの外枠を無くしてみましょう.FormBorderStyleプロパティをNoneにしましょう. 枠なくすと×ボタンもなくなるのでそのままでは終了できなくなるので注意.
せっかくですから登場するときはど真ん中にしたいですね. StartPositionプロパティをCenterScreenにすると真ん中になります.
今回は常駐型デスクトップマスコットですから, タスクトレイにアイコンを表示させましょう. それにはツールボックスからNotifyIconを使います. NotifyIconアイコンを設置したらVisibleプロパティをtrueします. これでアイコンが表示されます.アイコンはお好みで用意しましょう.
タスクトレイに表示したらタスクバーの表示はもう必要ないでしょう. FormのShowInTaskbarプロパティをFalseにしてください.
さて,23時にテッ、テッ、テレホーするためには指定した時間になるとメソッドを呼んでくれると良さそうです. しかし,そんな便利な機構って意外とないんですねー.
そこで,指定した時間おきにメソッドを呼んでくれるTimerクラスがあります. それを利用して11時になったらお知らせするメソッドを自分で作ることにしましょう. ツールボックスからTimerを設置しましょう.
TimerのIntervalプロパティを1000にします. Intervalは何ミリ秒ごとにメソッドを実行するかを指定します.今回は1000ミリ秒ですから1秒ごとですね. そして,EnabledプロパティをTrueにしておきます.これでタイマーが有効になります,
Timerを選択して,プロパティウィンドウのところの雷アイコンを押してください. 雷アイコンを押すと,プロパティがイベントに変わります.
イベントはなんか起きたとき誰かが呼んでくれるメソッドみたいなそんな感じのやつです. TimerクラスにはTickイベントがあります.ここにメソッドを登録すると1秒おきにそのメソッドを実行してくれます. Tickをダブルクリックすると,そのメソッドを自動で作ってくれます.
さてそのメソッドの中で今23時かどうか調べれば良いわけです. 現在の時刻はDateTimeクラスのNowプロパティで取得できます. さらに時間,分,秒はDateTimeクラスのHour, Minute, Secondプロパティで取得できるので,これと比較すればおk.
private void timer1_Tick(object sender, EventArgs e) { //現在時刻 DateTime now = DateTime.Now; if (now.Hour == 23 && now.Minute == 0 && now.Second == 0) { //時間になったらテレホー this.Show(); } }
23時になるとテレホーするためにフォームを表示させます. FormクラスのShowメソッド