質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

4650閲覧

アラーム時刻にメッセージを表示する方法

riri_Ca85991151

総合スコア19

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2019/03/31 05:44

C#

1コード using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10 11namespace 修了問題7_2 12{ 13 public partial class Form1 : Form 14 { 15 public Form1() 16 { 17 InitializeComponent(); 18 } 19 //現在の日付を取得 20 DateTime d = DateTime.Now; 21 22 private void timer1_Tick(object sender, EventArgs e) 23 { 24 //タイマーを起動 25 timer1.Enabled = true; 26 DateTime d = DateTime.Now; 27 textBox1.Text = String.Format("{0:yyyy年MM月dd日dddd}", d); 28 textBox2.Text = String.Format("{0:HH:mm:ss}", d); 29 } 30 31 private void Form1_Load(object sender, EventArgs e) 32 { 33 timer1.Enabled = true; 34 DateTime d = DateTime.Now; 35 textBox1.Text = String.Format("{0:yyyy年MM月dd日dddd}", d); 36 textBox2.Text = DateTime.Now.ToLongTimeString(); 37 } 38 39 private void radioButton1_CheckedChanged(object sender, EventArgs e) 40 { 41 //ラジオボタン1が押されたら以下の処理を実行する 42 if (radioButton1.Checked == true) 43 { 44 hScrollBar1.Visible = true; 45 textBox3.Text = String.Format("{0:HH:mm:ss}", d.AddMinutes(1)); 46 47 //現在時刻とアラーム時刻が一致した場合、以下の処理を実行する 48 if (textBox2.Text == textBox3.Text) 49 { 50 textBox3.Text = "ALARM ON"; 51 hScrollBar1.Visible = false; 52 radioButton1.Checked = false; 53 radioButton2.Checked = true; 54 } 55 56 } 57 58 //aラジオボタン2が押されたら以下の処理を実行する 59 else if (radioButton2.Checked == true) 60 { 61 hScrollBar1.Visible = false; 62 textBox3.Text = ""; 63 } 64 } 65 66 private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) 67 { 68 DateTime d = DateTime.Now; 69 70 textBox3.Text = String.Format("{0:HH:mm:ss}", d.AddMinutes(hScrollBar1.Value)); //スクロールバー1を移動すると、アラーム時刻が変化する 71 } 72 73 private void button1_Click(object sender, EventArgs e) 74 { 75 Application.Exit(); 76 } 77 } 78} 79 80 81

前提・実現したいこと

C#でアラーム時計のプログラムを作成したい

発生している問題・エラーメッセージ

現状のif文(現在時刻とアラーム時刻が一致した時の処理)では一致しなかった場合、そのまま抜けてしまうので処理が実行されない。
なので、時刻が一致したら処理できるようにしたいがコードが思いつかない。
エラーメッセージ

### 該当のソースコード if (textBox2.Text == textBox3.Text) { textBox3.Text = "ALARM ON"; hScrollBar1.Visible = false; radioButton1.Checked = false; radioButton2.Checked = true; } ```ここに言語名を入力 C#

試したこと

デバッグで条件が一致しなかった場合、抜けることを確認した

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず、どういう時に発生するイベントか理解しましょう。
・radioButtonのCheckedChangedイベント
ご自身がコメントで書いているようにクリックされたりしてCheckedプロパティが変化したときに発生します。

・timerのTickイベント
timerに設定したIntervalプロパティの値の時間が経過した時に発生します。
Enabledプロパティをfalseに設定しない限り、Intervalの間隔で発生し続けます。

上記のことを理解して、どこでアラーム時刻と現在時刻が同じか判断すべきか考えてください。

投稿2019/03/31 05:56

YAmaGNZ

総合スコア10222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

riri_Ca85991151

2019/03/31 06:04

timerTickイベントの理解が出来てなかったです。 解決しました! わかりやすい回答本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問