Merhaba geçenlerde böyle bişey yapmak istedim, bulduğum-geliştirdiğim kodları sizinle paylaşmak istedim. Lazım olabilir.
Öncelikle bunun kullanım alanları nelerdir;
Şahsen ben veritabanından sorgu çektiriyorum her 5 dk'da bir bulunduğum birime ait yeni bir bildirim geldiğinde pop-up aktif oluyor
dönen sonuç 0dan farklıysa pop-up açılıyor ve üzerine tıklanana kadar kaybolmuyor.
yapımına geçelim ;
1- öncelikle bildirim için kullanacağımız formumuzu oluşturuyoruz formun boyutu önemli değil nesnelerinizi sol üste koyun yeter çünkü ekran çözünürlüğüne göre küçülüp büyüyecek. forma 1 adet timer nesnesi'de ekleyelim bunu yavaş yavaş gözükmesi için kullanacaz direk fırlamasın estetik olması açısından. borderları falan silinde bildirime benzesin biraz
2- Formumuza kodlarımızı yazalım
01 | private void Bildirim_Load( object sender, EventArgs e) |
03 | ShowInTaskbar = false ; |
04 | Width = Convert.ToInt16(Screen.GetWorkingArea( this ).Width / 5); |
05 | Height = Convert.ToInt16(Screen.GetWorkingArea( this ).Height / 5); |
06 | SetBounds(Screen.GetWorkingArea( this ).Width - Width, |
07 | Screen.GetWorkingArea( this ).Height - Height, Width, Height); |
09 | timer1.Enabled = true ; |
12 | private void timer1_Tick( object sender, EventArgs e) |
15 | if ( this .Opacity < 100) |
3- ana formumuzu inceleyelim;
ana formda 1 adet timer belirlenen dk aralığında count sorgusu çekip yeni bildirim varsa bildirim formunu açması için düzenleme yapıyoruz.
01 | private void timer2_Tick( object sender, EventArgs e) |
04 | SqlConnection baglan = new SqlConnection(); |
05 | baglan.ConnectionString = "integrated security=SSPI;data source=" + server + ";initial catalog=DBCAN" ; |
06 | SqlCommand cmd = new SqlCommand(); |
07 | cmd.CommandText = "SELECT COUNT(*) as SAY FROM BILDIRIM WHERE GORULDU=0" ; |
08 | cmd.Connection = baglan; |
10 | SqlDataReader oku = cmd.ExecuteReader(); |
13 | clsdegisken.bildirimsay = Convert.ToInt16(oku[ "SAY" ].ToString()); |
15 | if (clsdegisken.bildirimsay > 0) |
17 | frmuyari bildirim = new frmuyari(); |