マウスホイールで数値が変わるようにしてみた。
ソース
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
//mouse wheel イベントハンドラ this.label2.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.label_MouseWheel); this.label3.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.label_MouseWheel); this.label4.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.label_MouseWheel); this.label5.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.label_MouseWheel); this.label6.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.label_MouseWheel); this.label7.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.label_MouseWheel); this.label8.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.label_MouseWheel); this.label9.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.label_MouseWheel); Font font1 = new Font("Arial", 30); Font font2 = new Font("Arial", 30, FontStyle.Underline); private void label_MouseMove(object sender, MouseEventArgs e) { Label label = sender as Label; label.Font = font2; label.Focus(); } private void label_MouseLeave(object sender, EventArgs e) { Label label = sender as Label; label.Font = font1; } private void label_MouseWheel(object sender, MouseEventArgs e) { Label label = sender as Label; int val = int.Parse(label.Text) + e.Delta / 120; if (val < 0) val = 9; else if (val > 9) val = 0; label.Text = val.ToString(); int freq = getfreq(); if (freq > 30000000) setfreqmax(); if (freq < 1000) setfreqmin(); } private int getfreq() { int res = int.Parse(label2.Text) * 10000000 + int.Parse(label3.Text) * 1000000 + int.Parse(label4.Text) * 100000 + int.Parse(label5.Text) * 10000 + int.Parse(label6.Text) * 1000 + int.Parse(label7.Text) * 100 + int.Parse(label8.Text) * 10 + int.Parse(label9.Text); return res; } private void setfreqmax() { label2.Text = "3"; label3.Text = "0"; label4.Text = "0"; label5.Text = "0"; label6.Text = "0"; label7.Text = "0"; label8.Text = "0"; label9.Text = "0"; } private void setfreqmin() { label2.Text = "0"; label3.Text = "0"; label4.Text = "0"; label5.Text = "0"; label6.Text = "1"; label7.Text = "0"; label8.Text = "0"; label9.Text = "0"; } |
フォントを切り替えるコードは、ラベル毎でなく共通にできた。
周波数の設定範囲を1MHz~30MHzに制限したいので、1MHz以下になった場合や30MHz以上になった場合は強制的に1MHz、30MHzになるようにした。
実際にAD9850にデータを送っていないので最終的な確認が必要だけど、インタフェース部分はこれで一旦終了。