C Sharp İle Msn Bildirim Tarzı Pop-Up Yapımı
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
private void Bildirim_Load(object sender, EventArgs e) { ShowInTaskbar = false; // taskbarda gizliyoruz ki amele gibi taskbarda gözükmesin :) -- tahribat.com Width = Convert.ToInt16(Screen.GetWorkingArea(this).Width / 5); // ekran genişliğinin 1/5 ini alıyoruz Height = Convert.ToInt16(Screen.GetWorkingArea(this).Height / 5); // ekran yüksekliğinin 1/5 ini alıyoruz SetBounds(Screen.GetWorkingArea(this).Width - Width, // width değerimizi atalım Screen.GetWorkingArea(this).Height - Height, Width, Height); // burdanda masaüstü koordinatlarına göre uygun şekilde yerleştiriyoruz this.Opacity = 0; // görünürlüğü 0 yapıyoruz ki timer zaten yavaş yavaş getirsin formu timer1.Enabled = true; // timer'ımızı aktif ediyoruz } private void timer1_Tick(object sender, EventArgs e) { if (this.Opacity < 100) //opacity 100 değilse arttır. { this.Opacity += 0.10; } }
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.
private void timer2_Tick(object sender, EventArgs e) { SqlConnection baglan = new SqlConnection(); baglan.ConnectionString = "integrated security=SSPI;data source=" + server + ";initial catalog=DBCAN"; SqlCommand cmd = new SqlCommand(); cmd.CommandText = "SELECT COUNT(*) as SAY FROM BILDIRIM WHERE GORULDU=0"; cmd.Connection = baglan; baglan.Open(); SqlDataReader oku = cmd.ExecuteReader(); while (oku.Read()) { clsdegisken.bildirimsay = Convert.ToInt16(oku["SAY"].ToString()); } if (clsdegisken.bildirimsay > 0) { frmuyari bildirim = new frmuyari(); bildirim.Show(); } } } }
Hit: 601181
Yazar: Sharp