C# ile Pop-Up Window Form Yapalım

Merhaba Arkadaşlar Bu dersimizde sizle forma benzer birşey yapacağız. Tabi normal olarak form oluşturuyoruz ama kodlar yardımı ile bu forma bazı özellikler kazandırıyoruz. Formun kenarlarına çerçeve ekleme gibi vb. Bence kullanışlı bir kod yapısı. Geçenlerde formumun borderstyle özelliğini None yapmıştım kenarlarını siyah yapmak istemiştim onun için groupbox kullanmıştım. Bu kodu yabancı bir sitede gördüm hemen sizle paylaşmak istedim.

void ShowPopup(string text, int width, int height)
{
    // Popup adında bir form oluştur
    Form Popup = new Form {
        Width = width, // genişlik parametresini ata
        Height = height, // yükseklik parametresini ata
        ShowInTaskbar = false, // başlat çubuğunda görünme
        FormBorderStyle = FormBorderStyle.None, // Form kenarlıkları olmasın
        BackColor = Color.CornflowerBlue, // Arkaplan "Mısır çiçeği mavisi" rengi
        StartPosition = FormStartPosition.CenterScreen, // Formu ekrana ortala
        TopMost = true, // Her zaman üstte
        Cursor = Cursors.Hand // İmleç, el şeklinde olsun
    };

    // Form click eventi
    Popup.Click += delegate{
        this.Dispose(); // tıklanıldığında formu kapat
    };

    // Form içi grafik işlemleri
    Popup.Paint += delegate {
        // Formun etrafına bir dörtgen çiz (Rengi siyah = Pens.Black)
        Popup.CreateGraphics().DrawRectangle(Pens.Black, 0, 0, (width - 1), (height - 1));
    };

    // lbl_text adında bir label oluştur
    Label lbl_text = new Label{
        Left = 30, // sol tarafa uzaklık 30 pixel
        Top = 30, // yukarıya uzaklık 30 pixel
        AutoSize = true, // label boyutunu text'e göre  ayarla
        Font = new Font(this.Font, FontStyle.Bold), // font kalın olsun
        Text = text // metin parametresini ata
    };

    // oluşturulan labeli forma ekle
    Popup.Controls.Add(lbl_text);

    // pop-up formu göster
    Popup.ShowDialog();
}

Kullanımı ise :

//ShowPopup(bildirim metni, genişlik, yükseklik);
ShowPopup("3 yeni mesajınız var!", 185, 80);

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.