Bloğumda toplam 5 kategoride yazılmış 8 yazı ve 1 yorum var.

DialogResult c# Kullanımı Örnekleri

8 sene önce yazıldı, 6.950 kere okundu. 0

Bir otomasyon programı kullandığınızı varsayalım. Bu programda istediğiniz değişiklikleri yaparken yanlışlıkla çıkış butonuna basıp size hiçbir uyarı vermeden kapandığını ve yaptığınız değişikliklerin kayıt edilmediğini düşünün. Bu programda büyük bir açık olmuş olur ve bununla beraber müşteri kaybetmiş olursunuz.

DialogResult bize herhangi bir durumda programın önüne (ShowDialog açar gibi) bir uyarı mesajından sonucu verir. Örneğin bir Word dokümanını değiştirdikten sonra programı kapatmaya çalıştığınızda “Yaptığınız değişiklikleri kaydetmek istiyor musunuz?” gibi bir soru soruyor. “Evet” denildiğinde değişiklikler kaydediliyor, “Hayır” denildiğinde kaydedilmiyor. İşte burada DialogResult devreye giriyor.

Dönüş değeri bir iletişim kutusu göstermek için tanımlayıcıları belirler.(dialogresult c#)

NOT    : DialogResult TOOLBOX da bulunmaz. Kullanmak istenildiğinde ilgili butonun CLICK özelliğine yazılır.

 

ÖRNEK 1         :

 

Çıkış butonuna tıklanıldığında “Çıkış yapmak istiyor musunuz ?” şeklinde bir uyarı vermesini istiyoruz. Uyarı verdikten sonra EVET butonuna tıklanıldığında Program kapanacak, HAYIR butonuna tıklanıldığında ise program olduğu halde kalıp uyarı penceresi kapanacaktır.

İlk olarak DialogResult ile NESNE oluşturalım;

DialogResult cikis = new DialogResult();

 

 

Daha sonra MessageBox ile soru sorarak NESNE ile ilişkilendiriyoruz;

 

cikis = MessageBox.Show("Devam etmek istiyormusunuz ?", "Uyarı", MessageBoxButtons.YesNo);

 

 

Bu uyarının ardından Evet “YES” butonuna tıklanıldığında yapılacak işlemleri IF ile şart koşarak tamamlıyoruz;

if (cikis == DialogResult.Yes)
                {
                    Application.Exit();
                }

 

Hemen Hayır “NO” butonuna tıklanılması durumunda yapılacak işlemleri yazalım;

if (cikis == DialogResult.No)
                {
                    MessageBox.Show("Program kapatılmadı.");
                }

 

Örnekte Nesne oluşturduk ardından MessageBox ile ekrana uyarı verdik. Eğer programı kapatmak için EVET butonuna tıklanırsa program Application.Exit(); ile programla ilgili olan her şeyi kapatıyor. Ancak HAYIR butonuna tıklanıldığında sadece ekrana program kapatılmadı şeklinde yazı gelecek.

DialogResult ile ilgili kullanılabilecekler:

MessageBoxButtons   :           Evet, Hayır, OK, Tamam, Yoksay, Vazgeç gibi butonları ekler.

MessageBoxIcon        :           Bilgi, Dikkat, Soru ve Uyarı gibi simgeleri belirler.

 

ÖRNEK 2         :

 

Çıkış butonundan değil de formun sağ üstündeki kırmızı çarpıdan kapatılması durumunda uyarı vermesini istiyoruz. Uyarı verdikten sonra EVET butonuna tıklanıldığında Program kapanacak, HAYIR butonuna tıklanıldığında ise program olduğu halde kalıp uyarı penceresi kapanacaktır.

Bunun için FORM EVENT kullanmamız gerek. Formumuzda boş bir kısıma tıklayarak Design kısmında properties penceremizin üst seçenekler kısmında ( Özellikleri Kategori ve A-Z ye sıralama kısmı) Events (Şimşek şeklindeki simgesi) tıklıyoruz. Burada formumuzun olayları açılıyor.

Bu kısımda formumuzun kırmızı çarpıdan kapatılma olayını düzenleyip ona şart koyacağız. Böylece kullanıcı programda yapılan değişiklikleri kaydetmeyi unutsa bile uyarı mesajı gelecek.

Events kısmından FormClosing olayını bulup çift tık yapıyoruz. Çift tık yapmamızla beraber bizi kod ortamına atması gerekiyor. Ayrıca formun kod ortamına;

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
        }

Şeklinde kod eklemesi gerekiyor. Kırlangıçları içine girilecek olan herhangi bir kod, programı kapatmak için kırmızı çapıya basıldığında gözükecek.

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult cikis = new DialogResult();
            cikis = MessageBox.Show("Devam etmek istiyormusunuz ?", "Uyarı", MessageBoxButtons.YesNo);
            if (cikis == DialogResult.Yes)
                {
                    Application.Exit();
                }
            if (cikis == DialogResult.No)
                {
                    MessageBox.Show("Program kapatılmadı.");
                }
          }

 

 

 

ÖRNEK 3         :

 

textBox’a yazılan bir şey varsa program “kaydetmeden çıkmak istediğinize emin misiniz?” şeklinde soru soracak, Eğer EVET denilirse program kapanacak. HAYIR denildiğinde program kapanmayacak. Ama textBox boş ise program soru sormadan kapanacak.

Öncelikle formumuza

  • 1 Button
  • 1 textBox

ekliyoruz.

Button1 ‘in kodları aşağıdaki gibi olacak;

private void button1_Click(object sender, EventArgs e)
        {
            if (textBox.Text == "")
            {
                Application.Exit();
            }
            else
            {
                DialogResult cikis = new DialogResult();
                cikis = MessageBox.Show("Kaydetmeden çıkmak istediğinize emin misiniz?", "Emin Misiniz?", MessageBoxButtons.YesNo);
                if (asd == DialogResult.Yes)
                {
                    Application.Exit();
                }

 

  • Button1 e tıklanıldığında textBox’da yazı yoksa program direk kapanıyor.
  • Button1 e tıklanıldığında textBox’da yazı varsa program uyarı veriyor.

 

Okuduğunuz için teşekkürler..

Konuyla alakalı bir şeyler yazabilirsin.

Bir cevap yazın

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

Visual Studio 2012 No exports were found that match the constraint:… Hatası

Merhabalar, Uzun zamandır kişisel bloğuma yoğunluk ve çalışmalarımdan dolayı içerik giremiyordum. Nihayet fırsatımı buldum ve Visual S...

7 sene önce. 307 Devam Et

Elle yeni Label, TextBox oluşturma

Merhabalar. Bu yazımızda c# da el ile nasıl label ekleyip kontrolünü yaptırabileceğimizi göstereceğim. Bildiğiniz gibi c# veya asp.NET ko...

8 sene önce. 614 Devam Et

Asp.NET Sohbet Uygulaması

Merhabalar. Desktop programcılıktan asp.NET platformuna yeni yeni geçiş yapıyorum. Bu sürede ilerlediğim, gözlemlediğim işleri sizlerle p...

8 sene önce. 636 Devam Et

Access veritabanı ile kullanıcı girişi oluşturma

Çoğu hatta tüm otomasyon programının başına yetkililere ait kullanıcı giriş ekranı çıkar. Kullanıcıların kaydı veritabanında olduğu...

8 sene önce. 704 Devam Et

Sql Server Express bağlantı sorunları için öneri

Bilindiği gibi SQL Server Express bedava dağıtılan bir sürüm. Bedava olmasının yanında getirdiği avantajların yanında kullanıcılar için...

8 sene önce. 284 Devam Et

Hakkımda

Çevirmeli bağlantıdan ADSL'e geçiş ile internetle tanışıp, MSN devrinde bedava site oluştucular ile boş içerikli siteler, Facebook devrinde ise zamanında popüler olan bir forum oluşturarak kod yazmaya başladım. Ardından Photoshop, HTML ve CSS bilgilerimi geliştirerek harçlığımı kazanmaya başladım.

Lisede C#, SQL dersleri görmeye başlayınca, arka plan programlaya daha çok yatkın olduğumu anlayıp, merakım sayesinde daha çok araştırma yapıp daha çok şey öğrendim. Üniversite zamanı işe girerek, Javascript, Java, PHP, ASP.NET, WPF, Forms, Socket, P2P falan filan derken çarşı pazar karıştı, saçları da döktük.

Mezuniyetin ardından, "Okullardan alacağımı aldım, bundan sonrasını kendim yapmalıyım" diyerek çalışmaya devam ettim. 5 yılda 5 farklı projede yer aldım ve almaya devam ediyorum.

Şu anda arka plan programcısı olarak özel bir şirkette çalışıyorum. Node.JS, MySQL vazgeçilmezlerim arasında. Ve evet! Hala kendimi geliştirmeye devam da ediyorum...