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
}
}
}
'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 |