본문 바로가기
C#

C#으로 간단한 알람 프로그램 만들기 (윈도우즈 폼) Windows Forms 응용 프로그램

by 아스키의 공부방 2012. 12. 2.
728x90
반응형

https://gameprograming.tistory.com/41?category=493568

최신본


표는 밑에 엑셀 파일로 첨부 했습니다.

 

주요 기능 : 트레이아이콘, 풍선 도움말, 알람

음악 선택, 음악 미리듣기, 음악 중지

  속성 값
사용 된 툴 Name Text TextAlign Font Visible Value AutoSize Checked Interval Icon
groupbox1   알림 시간 설정   굴림, 굵게, 14pt            
groupbox2   음악 설정   굴림, 굵게, 14pt            
groupbox3   시간대 설정   굴림, 굵게,  9pt FALSE          
numericUpDown1 setting_hour         0        
numericUpDown2 setting_minute         1        
radiobutton1 rb_time_type_future 알림 Type1         TRUE TRUE    
radiobutton2 rb_time_type_time 알림 Type2         TRUE FALSE    
radiobutton3 rb_am 오전     FALSE   TRUE      
radiobutton4 rb_pm 오후     FALSE   TRUE      
label1 lbl_realtime 현재시각 :    굴림, 굵게, 14pt     TRUE      
label2 lbl_hour 시간         TRUE      
label3 lbl_minute         TRUE      
TextBox1 txt_soundname Default Center       TRUE      
Button1 btn_timesetting 알림 시각 설정   굴림, 굵게, 15pt            
Button2 btn_soundselect 알림 음악 설정   굴림, 굵게, 15pt            
Button3 btn_sound_previewstart 음악 미리듣기   굴림, 굵게, 15pt            
Button4 btn_sound_previewstop 미리듣기 중지   굴림, 굵게, 15pt            
timer1 timer_realtime               1000  
timer2 timer_settingtime                  
NotifyIcon trayicon 알람 프로그램이 실행중 입니다.               아이콘파일 삽입함
ToolTip1 toolTip_Alram_Type1                  
ToolTip2 toolTip_Alram_Type2                  

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Media;

 

namespace Alram

{

public partial class Alram_Main : Form

{

bool bool_setting = false

 

int int_SettingTime_Hour, int_SettingTime_Minute;

 

public Alram_Main()

{

InitializeComponent();

}

 

private void Alram_Main_Load(object sender, EventArgs e)

{

lbl_realtime.Text = "현재시각 : " + DateTime.Now.ToLongTimeString(); // 폼이 실행되자마자 시간을 띄우기 위해 사용

timer_realtime.Enabled = true

}

 

private void timer1_Tick(object sender, EventArgs e)

{

// 지정된 시간(1)가 지날때마다 시작되는 이벤트

lbl_realtime.Text = "현재시각 : " + DateTime.Now.ToLongTimeString();

}

 

private void btn_timesetting_Click(object sender, EventArgs e)

{

if (rb_time_type_time.Checked == false)

{

if (bool_setting == true)

{

if (DialogResult.OK == MessageBox.Show("이미 알람이 설정 되어 있습니다만 취소하고 다시 설정하시겠습니까?", "경고", MessageBoxButtons.OKCancel))

{

int int_SettingTime_Total = 0;

for (int int_SettingHour_Temp = (int)setting_hour.Value; int_SettingHour_Temp >= 1; int_SettingHour_Temp--)

{

int_SettingTime_Total += 60;

}

int_SettingTime_Total = int_SettingTime_Total + ((int)setting_minute.Value * 60000);

 

timer_settingtime.Interval = int_SettingTime_Total;

timer_settingtime.Enabled = true

 

MessageBox.Show("앞으로 " + setting_hour.Value + "시간 " + setting_minute.Value + "분 후에 알람이 울립니다.", "알림");

}

}

else

{

bool_setting = true

 

int int_SettingTime_Total = 0;

for (int int_SettingHour_Temp = (int)setting_hour.Value; int_SettingHour_Temp >= 1; int_SettingHour_Temp--)

{

int_SettingTime_Total += 60;

}

int_SettingTime_Total = int_SettingTime_Total + ((int)setting_minute.Value * 60000);

 

timer_settingtime.Interval = int_SettingTime_Total;

timer_settingtime.Enabled = true

 

MessageBox.Show("앞으로 " + setting_hour.Value + "시간 " + setting_minute.Value + "분 후에 알람이 울립니다.", "알림");

}

}

else

{

if (bool_setting == true)

{

if (DialogResult.OK == MessageBox.Show("이미 알람이 설정 되어 있습니다만 취소하고 다시 설정하시겠습니까?", "경고", MessageBoxButtons.OKCancel))

{

if (rb_pm.Checked == true)

{

int_SettingTime_Hour = (int)setting_hour.Value + 12;

int_SettingTime_Minute = (int)setting_minute.Value;

 

timer_settingtime.Interval = 1000;

timer_settingtime.Enabled = true

 

MessageBox.Show(setting_hour.Value + "" + setting_minute.Value + "분에 알람이 울립니다.", "알림");

}

else

{

int_SettingTime_Hour = (int)setting_hour.Value;

int_SettingTime_Minute = (int)setting_minute.Value;

 

timer_settingtime.Interval = 1000;

timer_settingtime.Enabled = true

 

MessageBox.Show(setting_hour.Value + "" + setting_minute.Value + "분에 알람이 울립니다.", "알림");

}

}

}

else

{

bool_setting = true

 

if (rb_pm.Checked == true)

{

int_SettingTime_Hour = (int)setting_hour.Value + 12;

int_SettingTime_Minute = (int)setting_minute.Value;

 

timer_settingtime.Interval = 1000;

timer_settingtime.Enabled = true

 

MessageBox.Show(setting_hour.Value + "" + setting_minute.Value + "분에 알람이 울립니다.", "알림");

}

else

{

int_SettingTime_Hour = (int)setting_hour.Value;

int_SettingTime_Minute = (int)setting_minute.Value;

 

timer_settingtime.Interval = 1000;

timer_settingtime.Enabled = true

 

MessageBox.Show(setting_hour.Value + "" + setting_minute.Value + "분에 알람이 울립니다.", "알림");

}

}

 

}

}

 

private void timer_settingtime_Tick(object sender, EventArgs e)

{

if (rb_time_type_time.Checked == false)

{

SoundPlayer sp = new SoundPlayer();

sp.SoundLocation = txt_soundname.Text;

if (txt_soundname.Text == "Default")

{

Console.Beep();

bool_setting = false

timer_settingtime.Enabled = false

}

else

{

sp.Play();

bool_setting = false

timer_settingtime.Enabled = false

}

if (DialogResult.OK == MessageBox.Show("지정한 시간이 되었습니다.", "알림", MessageBoxButtons.OK))

{

sp.Stop();

}

}

else

{

if (DateTime.Now.Hour == int_SettingTime_Hour && DateTime.Now.Minute == int_SettingTime_Minute)

{

SoundPlayer sp = new SoundPlayer();

sp.SoundLocation = txt_soundname.Text;

if (txt_soundname.Text == "Default")

{

Console.Beep();

bool_setting = false

timer_settingtime.Enabled = false

}

else

{

sp.Play();

bool_setting = false

timer_settingtime.Enabled = false

}

if (DialogResult.OK == MessageBox.Show("지정한 시간이 되었습니다.", "알림", MessageBoxButtons.OK))

{

sp.Stop();

}

}

}

}

 

private void btn_soundselect_Click(object sender, EventArgs e)

{

OpenFileDialog ofd = new OpenFileDialog();

ofd.Filter = ("wav파일 | *.wav");

ofd.ShowDialog();

 

string openfile_name = ofd.FileName;

SoundPlayer sp = new SoundPlayer();

if (openfile_name != "")

{

sp.SoundLocation = openfile_name;

 

txt_soundname.Text = openfile_name;

}

}

 

private void btn_sound_previewstart_Click(object sender, EventArgs e)

{

SoundPlayer sp = new SoundPlayer();

sp.SoundLocation = txt_soundname.Text;

if (sp.SoundLocation == "Default")

Console.Beep();

else

sp.Play();

}

 

private void btn_sound_previewstop_Click(object sender, EventArgs e)

{

SoundPlayer sp = new SoundPlayer();

sp.Stop();

}

 

private void Alram_Main_FormClosing(object sender, FormClosingEventArgs e)

{

e.Cancel = true

if (DialogResult.OK == MessageBox.Show("종료 하시겠습니까?(종료하지 않으면 트레이 아이콘으로 내려갑니다.)", "경고", MessageBoxButtons.OKCancel))

{

this.Dispose();

this.Close();

}

else

{

this.Visible = false

trayicon.Visible = true

}

}

 

private void Alram_Main_MinimumSizeChanged(object sender, EventArgs e)

{

this.Visible = false

trayicon.Visible = true

}

 

private void trayicon_DoubleClick(object sender, EventArgs e)

{

if (this.Visible == false)

{

this.Visible = true

trayicon.Visible = false

}

}

 

private void rb_time_type_time_CheckedChanged(object sender, EventArgs e)

{

if (rb_time_type_time.Checked == true)

{

setting_hour.Maximum = 12;

groupBox3.Visible = true

rb_am.Visible = true

rb_pm.Visible = true

lbl_hour.Text = ""

}

else

{

lbl_hour.Text = "시간"

groupBox3.Visible = false

rb_am.Visible = false

rb_pm.Visible = false

}

}

 

private void rb_time_type_future_MouseEnter(object sender, EventArgs e)

{

toolTip_Alram_Type1.ToolTipTitle = "Type1 설명"

toolTip_Alram_Type1.ToolTipIcon = ToolTipIcon.Info;

toolTip_Alram_Type1.IsBalloon = true

toolTip_Alram_Type1.ShowAlways = true

}

 

private void rb_time_type_time_MouseEnter(object sender, EventArgs e)

{

toolTip_Alram_Type2.ToolTipTitle = "Type2 설명"

toolTip_Alram_Type2.ToolTipIcon = ToolTipIcon.Info;

toolTip_Alram_Type2.IsBalloon = true

toolTip_Alram_Type2.ShowAlways = true

}

}

}

 

 

알람 만들기.xlsx

728x90
반응형

'C#' 카테고리의 다른 글

C# 오른쪽마우스 클릭시 메뉴 띄우기  (0) 2012.12.13
C# 메세지박스 띄우기  (0) 2012.12.13
C# 진행율 나타내기 (트랙바, 프로그레스바)  (0) 2012.12.13
C# 폼에서 새로운 폼 열기  (0) 2012.12.13
C#  (0) 2012.09.11