8 Kasım 2013 Cuma

C# Buton Resmini Değiştirme ve Event Ekleme


C# ile program hazırlarken kendimize has buton şekilleri tasarlayabilir ve bunları kullanabiliriz. Bu sayede programımız daha hoş ve profesyonel bir havaya bürünür.

Bu örneğimde Inkscape ile oluşturduğum 2 png resmi kullanıyorum. Resimlerim 140x70 piksel boyutunda. Amacım butonun üzerine gelindiğinde buton resminin değişmesi ve imleç çekildikten sonra ilk haline dönmesi.



1.Aşama : Yeni bir Windows form application oluşturuyorum ve buton ekliyorum.


2.Aşama: Butonun üzerine tıkladıktan sonra Properties kısmına gelerek Background image kısmına tıklıyoruz ve yanda açılan üç noktaya da tıklayarak resim ekleme penceresini açıyoruz. Import ile resimlerimizi ekliyoruz.




3.Aşama: Buton seçili iken Properties kısmına geliyoruz ve Size  kısmından buton boyutunu resmin boyutu  (140x70) şeklinde değiştiriyoruz. Resmimiz de yazı varsa butonun Text kısmındaki yazıyı tamamen silebiliriz.

4.Aşama: Buraya kadar tamamsa Ctrl+F5 ile derleyip çalıştıralım. Resmin yanındaki çerçeve ve imleci butona götürdüğümüzde arkadaki değişen rengi farketmişsinizdir. Bunlardan kurtulmak için buton seçili iken Properties deki Fore Color , Back Color u Transparant yapıyoruz. Flat kısmını genişleterek içerisindeki Border Size ı “0“ yapıyoruz. MouseDownBackGolor ve MouseOverBackColor kısımlarını da Transparant olarak değiştiriyoruz. Flat Style kısmını da Flat olarak değiştiriyoruz. Şimdi derlediğimizde kenarındaki çizgiler ve değişen renklerden kurtulmuş olduk.

5.Aşama: Bu son aşamada butona event ekleyerek üzerine gelindiğinde resmin değişmesini ve bırakıldığında eski haline dönmesini sağlayacağız.  Yine buton seçili iken Properties e geliyoruz ve üstteki yıldırım şekline sahip olan Events sekmesini seçiyoruz. Buradan butonumuza kolayca event ekleyebiliriz. Mouse kısmından Mouse Enter a çift tıklayıp kod tarafına geçiyoruz ve aşağıdaki kodu ekliyoruz.

private void button1_MouseEnter(object sender, EventArgs e)
        {
            button1.BackgroundImage = Properties.Resources.bitmap;
        }

                Aynı şekilde Mouse Leave e çift tıklayıp kodunu ekliyoruz.

private void button1_MouseLeave(object sender, EventArgs e)
        {
            button1.BackgroundImage = Properties.Resources.bitmap2;
        }

                Resimlerin farklı olduğuna dikkat edelim. İşlemimiz tamam derleyip çalıştırdığımızda işe yaradığını görebiliriz.


Hazır halini görmek isteyenler aşağıdaki linkten indirebilirler!


2 yorum: