春です。お花見の季節です。
みんながお花見と称しておいしいものをいっぱい食べているので自分も家でお花見してやろうと思いました。
なので作りました。
作ったもの
TLで花見の話題が流れてくるのでC#で桜スライドショーソフト組みました。
— Atria@緑になりたい (@AtriaSoft) April 28, 2019
これで僕今日お花見します🌸🍡 pic.twitter.com/v42L7eo3Gk
書いたコード
このコードは愚直実装なのでメモリバカ食いします。実行しないでください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace sakura { public partial class Form1 : Form { int WaitTime = 60; List<string> ls = new List<string>() { //ここに表示させたい画像ファイルパスを列挙する }; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //初期化処理 numUpDown.Value = WaitTime; this.FormBorderStyle = FormBorderStyle.FixedSingle; timer.Interval = WaitTime * 1000; timer.Enabled = true; ImageBox.ImageLocation = "最初に表示させたい画像ファイルパス"; } private void numUpDown_ValueChanged(object sender, EventArgs e) { WaitTime = int.Parse(numUpDown.Value.ToString()); if (WaitTime <=0) { WaitTime = 1; numUpDown.Value = 1; } timer.Interval = WaitTime * 1000; } int tickcnt = 0; private void timer_Tick(object sender, EventArgs e) { Image img = Image.FromFile(ls[tickcnt % ls.Count()]); ImageBox.Image = img; tickcnt++; } } } |
書いたコード説明
左上に表示されている秒数間隔でタイマー関数内を実行させる処理を書いています。

このコードの改善点としては
- 起動しっぱなしにするとDisposeしていないのでメモリ食いまくる【致命的】
- 画像ファイルパス書かなくてもフォルダー指定でできればいいね
- UI雑だね
なぜ改善しないのか(クレーム)
面倒だからです。
労力と報酬が見合いません。お遊びにはこれくらい雑なコードで事足ります。
おわり
気が向いたら改善します。こんな中身のない記事は久々だ。