c# 관련해서 질문이있습니다.
조회수 1358회
[C#] DB값에 저장된 값을 읽어와서 프로그램창이 최소화 되었을때 자동으로 타이머가 돌아서 자동 최대화 팝업이 뜨는 소스입니다.
[1번]
private void chkAutoPopup_CheckedChanged(object sender, EventArgs e)
{
IniFile.SetAutoPopup(chkAutoPopup.Checked);
if (chkAutoPopup.Checked)
{
timerPopup.Interval = Int32.Parse(cmbPopupInterval.Text) * 60 * 1000;
timerPopup.Start();
cmbPopupInterval.Enabled = false;
}
else
{
timerPopup.Stop();
cmbPopupInterval.Enabled = true;
}
}
아래 소스와 같이 Check박스 유무 상관없이 자동팝업을 일정시간 기준으로 띄우는 것같은데요.. 위 소스에서 체크가 false면 아래 소스가 실행된다는 뜻인가요..? 소스이해가안가서 설명좀 부탁드립니다.
[2번]
private void timerPopup_Tick(object sender, EventArgs e)
{
timerPopup.Stop();
// 윈도우 팝업 살리기
if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;
// 타이머 재시작
timerPopup.Interval = Int32.Parse(cmbPopupInterval.Text) * 60 * 1000;
timerPopup.Start();
}
아래 소스는 제가 메인폼에 적용시킨 소스인데요.. DB값에 mini_popup_yn 값이 Y인 유저들만 자동팝업이 뜨게 만들어놨습니다.
이렇게 디폴트값으로 시간을 60 * 1000; 을 주었는데요. 소스내에서 디폴트값이 아닌 위와같이 Y/N 유무를 읽어온다음 해당유저가 Y이면 DB코드값을 읽어와서 자동팝업시간을 조절할수있게 하고싶습니다.
[1번] 소스와 [3번소스] 의 기능을 합치고싶은데 잘안되네요.
[3번]
private void timerPopup_Tick(object sender, EventArgs e)
{
// DB접속 환경 설정
NpgsqlConnection conn = new NpgsqlConnection(Variable.dbConnStr());
try
{
conn.Open();
String SQL = "";
SQL += " SELECT user_nm, user_id, mini_popup_yn ";
SQL += " FROM t_wrk0080 ";
SQL += " WHERE user_id = @getUserNm";
// 쿼리를 실행한다.
NpgsqlCommand pg_cmd = new NpgsqlCommand(SQL, conn);
pg_cmd.Parameters.AddWithValue("@getUserNm", Variable.m_userID);
NpgsqlDataReader rd = pg_cmd.ExecuteReader();
if (rd.Read())
//윈도우 팝업 살리기
if (rd["mini_popup_yn"].ToString() == "Y")
{
if (this.WindowState == FormWindowState.Minimized)
timerPopup.Stop();
{
this.WindowState = FormWindowState.Normal;
timerPopup.Interval = m_nPopup * 60 * 1000;
timerPopup.Start();
}
}
else
{
timerPopup.Stop();
rd.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally // 무조건 실행
{
if (conn != null)
conn.Close(); // 연결을 종료
Cursor.Current = Cursors.Default;
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력