C# Mouse Eventları ile Sürüklenilebilir Buton Yapımı (Form Application)


Öncelikli olarak bu Yazılım ve bu kategorinin altındaki C# kategorisini uzun zaman önce açmıştım fakat yazmak için uygun zamanı bulamamıştım. Bundan sonra bu kategoriye çok sayıda örnek uygulama içeren yazılar yazacağım.

Giriş

Bu uygulamamda size benim gerçekten çok beğendiğim ve internette çok az örneğine rastladığım bir uygulamayı yapacağım. Windows Form Application (WFA)-ların tasarım ekranlarında Toolbox’tan istediğimiz nesneyi sürükle-bırak tekniği ile formumuza yerleştirebilir ve yerini istediğimiz gibi değiştirebiliriz, yapmamız gereken sadece o nesneyi mouse’un sol tuşuna basılı tutup sağa-solo ve yukarı-aşağıya götürmek. Peki Form çalıştığı(Debug) anda uygulamamızdaki butonu nasıl hareket ettirebiliriz mouse ile? İşte bu yazımda bunu yapacağız.

Hatırlatma ve Dikkat Edilmesi Gerekenler

Başlıktada belirttiğim gibi C# dili ile .net 4.0 versiyonunda Visual Studio 2010 Ultimate programında yazıyorum.

Mantık Yürütme

Kodlamaya geçmeden önce biraz üzerinde düşünmemiz gerekiyor nasıl yapabiliriz hangi yoldan gidebiliriz diye. Eğer Mouse’un sol tuşuna tıklandığıda(MouseDown) başlayıp, tıklanma bittikten sonra(MouseUp) işlemin bitip bu aradaki zamanda(MouseMove) taşıma işlemi gerçekleşeceğini düşünüyorsak işlem tamamdır sadece bize kodu yazmak kalıyor.

Kodlama

Öncelikli olarak File > New Project ten aşağıdaki gibi seçim yapıp Suruklenip-Birakilabilen_Buton adında yeni bir Windows Form Application oluşturuyoruz.

Windows Form Uygulamalarında ben daima Form’un FormBorderStyle özelliğini “none” yapıyorum. Bunun yapmamdaki amaç; Formun üst kısımında yer alan form adının yazdığı bölüm bir alan kaplıyor ve siz bir location tayin edecekseniz/bulacaksanız/belirleyecekseniz ya da Drawing ile bir nesne ekleyeceseniz başınız ağrıyabilir. Yaklaşık 28px o alan, sağ ve soldaki gölgeli alanlarda 6şar px civarında. Bunlar ile uğraşmak istemiyorsanız tavsiye ediyorum. Bu işlemi yaptığımızda aşağıdaki gibi bir görünüm elde ediyoruz.

Butonun “MouseUp, MouseDown, MouseMove” Eventlarına yazacağız kodlarımızı. Bunun için “Properties” penceresinden aşağıdaki gibi şimşek şeklindeki ikona tıklıyoruz.

MouseDown, MouseMove, MouseUp Eventlarının yanındaki alanlara çift tıkladığımızda kodlarımızı yazmaya başlayabiliriz.

Yukarıda söylemiştim tekrar hatırlatmak gerekirse, MouseDown anında işlemimiz başlayacak ve MouseUp ta son bulacak ve MouseMove eventında çalışacak.

Aşağıda ekran görüntünüsün yerine kodları adım adım anlatmayı tercih ettim. Zaten meraklı bir yazılımcı oradaki verilerin bir çoğunu değiştirip denemeler yapacaktır.

public partial class Form1 : Form
    {
    public Form1()
    {
       InitializeComponent();
    }
    bool suruklenmedurumu = false; //Class seviyesinde bir field(değişken) tanımlıyoruz ki,MouseDown da biz bunu true yapacağız,MouseUpta false değerini alacak ve MouseMove eventında true ise hareket edecek.     
    Point ilkkonum; //Global bir değişken tanımlıyoruz ki, ilk tıkladığımız andaki konumunu çıkarmadığımızda buton mouse imlecinden daha aşağıdan hareket edecektir.
    private void button1_MouseDown(object sender, MouseEventArgs e)
    {
    suruklenmedurumu = true; //işlemi burada true diyerek başlatıyoruz.
    button1.Cursor = Cursors.SizeAll; //SizeAll yapmamımızın amacı taşırken hoş görüntü vermek için
    ilkkonum = e.Location; //İlk konuma gördüğünüz gibi değerimizi atıyoruz.
    }
    private void button1_MouseMove(object sender, MouseEventArgs e)
    {
       if (suruklenmedurumu) // suruklenmedurumu==true ile aynı.
          {
             button1.Left = e.X + button1.Left - (ilkkonum.X);
// button.left ile soldan uzaklığını ayarlıyoruz. Yani e.X dediğimizde buton üzerinde mouseun hareket ettiği pixeli alacağız + butonun soldan uzaklığını ekliyoruz son olarakta ilk mouseın tıklandığı alanı çıkarıyoruz yoksa butonun en solunda olur mouse imleci. Alttakide aynı şekilde Y koordinati için geçerli
              button1.Top = e.Y + button1.Top - (ilkkonum.Y);
           }
     }
     private void button1_MouseUp(object sender, MouseEventArgs e)
     {
        suruklenmedurumu = false; //Sol tuştan elimizi çektik artık yani sürükle işlemi bitti.
        button1.Cursor = Cursors.Default; //İmlecimiz(Cursor) default değerini alıyor.
     }
}

İndirme

Uygulamayı Kaynak Kodları ile Birlikte İndirmek İçin Lütfen Tıklayınız..

Not: Herhangi bir sorunuz olursa lütfen çekinmeyin, eklemimi/düzeltmemi istediğiniz bir yer olursa memnun olurum. İyi günler İyi çalışmalar. (Adınızı soyadınızı ve mail adresinizi doğru girmeniz sizinle iletişim kurmam için yeterlidir.)

  1. #1 by muhammet on July 20, 2011 - 12:16 am

    Merhaba
    Güzel çalışma
    Bunun gibi mesela 10 buton bı arada olsa ıstedıgımızı suruklesek onu nasıl yapabılırız , 1o buton yaratıp tek tek mouse event yazmıyacaz heralde dımı ?

    • #2 by Mahmut Can Sözeri on July 20, 2011 - 10:03 am

      Merhaba, Öncelikli olarak teşekkür ediyorum. Elbette yazmıyoruz. 1 tane butonun event larına yazıp. Diğer butonları bu event’a yönlendiriyoruz. Daha sonra örneğin;
      private void button1_click (object sender, EventArgs e)
      {
      ( sender as button) .Text=”Bu butona tıklantı”; // dediğinizde hangi butondaysa o çalışacaktır.
      }
      Bu şekilde çalışatırabilirsiniz. Tabi ben burada click event ını örnek verdim. Diğer kontrol için de yapabilirsiniz.

      İyi çalışmalar

      Kolay gelsin

    • #3 by aydin on October 12, 2014 - 10:17 am

      Hocam bu ilk KOnum NEEEE ??????

      • #4 by Mahmut Can Sozeri on October 12, 2014 - 4:31 pm

        Merhaba,

        Kod blogunda tanımlama “bool suruklenmedurumu = false; ….” satırının sağ tarafında kalmış, sanırım dikkatinizi çekmedi.

        Tekrar yazıyorum:

        “Point ilkkonum; //Global bir değişken tanımlıyoruz ki, ilk tıkladığımız andaki konumunu çıkarmadığımızda buton mouse imlecinden daha aşağıdan hareket edecektir.”

        Teşekkürler

        M.Can

  2. #5 by çağrı on November 18, 2011 - 4:15 am

    Merhaba. Eğer butonları dynamic olarak ekliyorsak butonlar üzerinde sürükleme işlemini nasıl yapabilirz.Yardımcı olursanız sevinirim.

    • #6 by Mahmut Can Sözeri on November 18, 2011 - 12:51 pm

      Merhaba aslında bir yukarıdaki soru tam olarak sorunuzun cevabı. Örneğin 10 tane button ekliyorsunuz uygulamanıza;
      private void Form1_Load(object sender, EventArgs e)
      {
      for (int i = 0; i < 10; i++)
      {
      Button btn = new Button();
      btn.Width = 100;
      btn.Height = 40;
      btn.Text = String.Format("btn{0}", i);
      btn.MouseDown += new MouseEventHandler(btn_MouseDown);
      btn.MouseMove += new MouseEventHandler(btn_MouseMove);
      btn.MouseUp += new MouseEventHandler(btn_MouseUp);
      flowLayoutPanel1.Controls.Add(btn);
      }
      }

      void btn_MouseUp(object sender, MouseEventArgs e)
      {
      Button button1 = sender as Button;
      }

      void btn_MouseMove(object sender, MouseEventArgs e)
      {
      Button button1 = sender as Button;
      }

      void btn_MouseDown(object sender, MouseEventArgs e)
      {
      Button button1 = sender as Button;
      }
      uygulamadaki kodları her bir evente yazarsanız kodunuz çalışacaktır. Ayrıca eğer bu şekilde form'un load anında tek bir seferde değilde belli aralıklar ile butonları oluşturuyorsanız tek yapmanız gereken eventini atamak. Event atadığınızda işleminiz tamamlanmıştır. İyi çalışmalar

  3. #7 by Ammo on July 3, 2012 - 8:52 am

    Kardeş merhaba
    çok güzel,farklı örnek olmuş benimde işime çok yaradı çok saol.. Bi sorum olucak sana şimd butonu dilediğimiz gibi hareket ettirebiliyoruz bu çok iyi, peki aynı mantıkla ekldiğimiz butonların boyutunu değiştirebilirmiyiz veya silebilirmiyiz diyelimki 20 tane buton var öle

    • #8 by Mahmut Can Sözeri on August 17, 2012 - 10:07 pm

      Merhaba,

      Evet boyutunu değiştirebiliriz ve silebiliriz. Ama boyutunu değiştirmek daha zor bir işlem fakat silmek daha kolay.

      İyi çalışmalar

      Kolay gelsin

  4. #9 by Nurullah.Yengec on August 30, 2012 - 12:30 am

    Merhaba Teşekkürler emeğiniz için..

    Wpf’te bu şekilde button taşıma nasıl olur acaba ? Baya araştırdım ama net bir program bulamadım.

    • #10 by Mahmut Can Sözeri on September 24, 2012 - 9:02 pm

      Merhaba,

      WPF ile ilgili herhangi bir çalışmam olmadı. Ama çok zor olmadığını düşünüyorum. Çünkü yazılan C#kodları aynı. Vakit bulduğumda an blogta yazarım.

      Teşekkürler.

  5. #11 by Mehmet Nasır on November 5, 2012 - 1:47 am

    Merhaba.

    buttonların yerlerini değiştirmek istiyorum.. bir buttonu alıp diğerinin üstüne getirdiğimde ikisinin yeri değişsin. bunu nasıl yapabilirim ?..

    şimdi den Teşekkürler..

    • #12 by Mahmut Can Sözeri on November 6, 2012 - 1:50 am

      Merhaba,

      İlginiz için öncelikle teşekkür ediyorum. Bir butonun seçili olduğu anda belirleyeceğiniz bir değişkene ilk koordinatlarını atayıp, diğerin üzerine gelme durumunu tespit ettiğinizde ise sürüklediğiniz butona üzerine geldiğiniz koordinatını ve üzerine geldiğinizde ilk başta atadığınız koordinatı vererek istediğinizi yapabilirsiniz.

      İyi çalışmalar

      Kolay gelsin

      • #13 by Mehmet Nasır on November 11, 2012 - 3:23 pm

        Teşekkürler …

  6. #14 by eda karagöl on December 29, 2012 - 2:56 am

    rasgele hareket eden bir cisim mesela temizlik robotu yapmak istiyorum görsel ayarlamalarda planlanıp konulan cisimlere çarpmasını istemiyorum.yardımcı olursanız çok mutlu olurum c# .ta çok yeniyim sayfanız çok faydalı oldu basarılarınızın devamını diliyorum:)

    • #15 by Mahmut Can Sözeri on December 29, 2012 - 4:22 am

      Öncelikle teşekkür ediyorum. Konulan cisimlere çarpmamasını istiyorsanız. Cisminizi hareket ettirmeden önce form üzerindeki tüm diğer öğelerin pozisyonlarını(location veya top-left ile) kontrol etmelisiniz, eğer rastgele hareket edeceği yer sırasında bir öğe yoksa o zaman hareket ettirmelisiniz.
      İyi çalışmalar. Kolay gelsin!

  7. #16 by eda karagöl on December 29, 2012 - 1:54 pm

    tesekkürler:)

  8. #17 by yiğit on December 29, 2012 - 7:28 pm

    hocam benimde sorum var bir türlü yapamadım :S c# da formu rasgele yerlerde açma

    • #18 by Mahmut Can Sözeri on December 31, 2012 - 4:11 am

      Form’u açtığınızda yine aynı şekilde Location’ını değiştirmeniz gerekiyor. Eğer bir projenin içerisinde başka bir form açmak içinse, Show metotunu çağırmadan önce location’ı değiştirmeniz gerekiyor. Umarım faydalı oldu. Eğer olmadıysa sorununuzu biraz daha açık alabilir miyim?

  9. #19 by tuncay on August 13, 2013 - 8:38 pm

    olmuyo bir türlü yapamadım bi yardım lütfen hocam facebook adresim=https://www.facebook.com/tg12345678?ref=tn_tnmn
    kodları kabul etmiyo c# 2012 express de yapamdım bi yardım lütfen

    • #20 by Mahmut Can Sozeri on August 13, 2013 - 10:32 pm

      Merhaba,

      Tam olarak anlayamadım ne yapıyorsunuz da çalışmıyor?

      Biraz daha açıklayabilirseniz yardımcı olmak isterim.

      İyi çalışmalar

  10. #21 by tuncay on August 14, 2013 - 1:02 pm

    kodları iyice inceledim hepsi doğru yaptım
    burda hata veriyo neden anlamadım ? çok lazım bu kod bana lütfen hocam

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WindowsFormsApplication11
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {

    true = button1.Cursor = Cursors.SizeAll;
    e.location;
    }

    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
    {
    button1.Left = e.X + button1.Left

    button1.Top = e.Y + button1.Top
    }
    }

    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {

    false button1.Cursor = Cursors.Default;
    }
    }
    }

  11. #22 by tuncay on August 14, 2013 - 2:40 pm

    hocam bu kodları bana visual express 2012 göre yapabilirmizimiz rica etsem

    • #23 by Mahmut Can Sozeri on August 14, 2013 - 10:15 pm

      Öyle birşey yapmam maalesef mümkün değil çünkü;
      1 – Böyle bir işlem pek hoş değil
      2 – Örnekte açıklayıcı olarak ifade ettiğimi düşünüyorum
      3 – Yazının en sonunda varolan uygulamayı indireiblirsiniz. Yani var olan uygulamayı indirip Visual Stuido 2012 Express sürümünde açıp kullanabilirsiniz. Herhangi bir hata olmayacaktır. Ama ben indirme linkini tekrar paylaşıyım: http://szr.me/i34EJ

      Umarım faydalı olmuştur.

      Teşekkür ediyorum.

      Mahmut Can Sözeri

  12. #24 by Ahmet on November 20, 2013 - 10:40 pm

    hocam olmadı yardım lütfen

    (ilkkonum.Y);
    ilkkonum
    (ilkkonum.X);
    hata veriyor

    namespace WindowsFormsApplication7
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    bool suruklenmedurumu = false;
    private void button1_MouseDown(object sender, MouseEventArgs e)
    {
    suruklenmedurumu = true; //işlemi burada true diyerek başlatıyoruz.
    button1.Cursor = Cursors.SizeAll; //SizeAll yapmamımızın amacı taşırken hoş görüntü vermek için
    ilkkonum = e.Location; //İlk konuma gördüğünüz gibi değerimizi atıyoruz
    }

    private void button1_MouseMove(object sender, MouseEventArgs e)
    {
    if (suruklenmedurumu) // suruklenmedurumu==true ile aynı.
    {
    button1.Left = e.X + button1.Left – (ilkkonum.X);
    // button.left ile soldan uzaklığını ayarlıyoruz. Yani e.X dediğimizde buton üzerinde mouseun hareket ettiği pixeli alacağız + butonun soldan uzaklığını ekliyoruz son olarakta ilk mouseın tıklandığı alanı çıkarıyoruz yoksa butonun en solunda olur mouse imleci. Alttakide aynı şekilde Y koordinati için geçerli
    button1.Top = e.Y + button1.Top – (ilkkonum.Y);
    }
    }

    private void button1_MouseUp(object sender, MouseEventArgs e)
    {
    suruklenmedurumu = false; //Sol tuştan elimizi çektik artık yani sürükle işlemi bitti.
    button1.Cursor = Cursors.Default; //İmlecimiz(Cursor) default değerini alıyor.
    }

    }
    }

    • #25 by Mahmut Can Sozeri on November 20, 2013 - 11:31 pm

      Merhaba,

      Yazı içerisindeki uygulamayı indirip test ettiniz mi acaba? Çünkü sizin yazdığınız kod ile benim yazdıklarım pek aynı görünmüyor.

      Tekrar kontrol edip yazarsanız sorun kalmayacaktır.

      İyi çalışmalar

      Mahmut Can Sözeri

  13. #26 by Ahmet on November 21, 2013 - 4:25 pm

    Point ilkkonum; Hocam Sorun Burdaymış Yukardaki Kodlarda Bu Yok Hocam Odan hata Yapmışım.

  14. #27 by Beyaz Golge on November 26, 2013 - 12:50 pm

    Elinize meğinize sağlık Çok işime yaradı ve faydalı oldu.

    Teşekkürler.

  15. #29 by ibrahim on February 8, 2014 - 11:45 pm

    Merhaba Mahmut Bey ;

    elinize sağlık çok güzel bir uygulama olmuş
    biraz yardıma ihtiyacım var bir uygulama yapacam formun üstünte 5 tane button var ben bunları mousenin tıklama olayıyla seçmek istiyorum bunu nasul yaparım tek tıklamada seçecek ikinci tıklmada seçimi kaldıracak seçtiğim button üzerinden yardımınız içim şimdiden teşekkür ederim

    ipekyazilim312@gmail.com

    iyi çalımalar dileri

  16. #30 by Faruk Özkal (@farukozkal) on April 7, 2014 - 8:14 pm

    Aradığım kodu sayenizde tek seferde buldum. Hayırlı bir iş için yapıyordum programı sizde vesile oldunuz🙂 Çok teşekkür ederim.

  17. #32 by acetinkaya on May 13, 2014 - 11:49 am

    Mahmut Bey merhaba,
    paylaşmış olduğunuz kodlar sayesinde büyük bir sıkıntımı çözdüm. Çok teşekkürler.
    Size bir sualim olacak vaktiniz olursa ilgilenirseniz çok sevinirim.

    Butona tıklayarak istediğim kadar picturebox oluşturabiliyorum formda ve oluşan herbir picturboxın hemen birişiğinde birer label da oluşuyor. Sizin kodlarınızdan ilham alarak istediğim picturebox ı seçip istediğim alana sürükleyebiliyorum fakat label lar sabit kalıyor. Her picturebox ile oluşan labelın kendi picturebox ı ile birlikte hareket etmesini istiyorum. Merge etmek diyebiliriz.

    Teşekkürler.

    • #33 by Mahmut Can Sozeri on February 11, 2015 - 8:58 am

      Şu an aklıma gelen yöntem, her bir label’ın tag’ine ve picturebox’ın tag’e ortak bir değer atayarak bu kontrolleri eşleştirebilirsiniz. Daha sonra picturebox taşındığında, label’de this.Controls den gezerek taşıyabilirsiniz.

      İlginiz için teşekkür ediyorum.

  18. #34 by lale öz on December 19, 2014 - 10:20 am

    merhaba
    banada yardımcı olabilirmisiniz?
    bir web sayfasında farenin hareket alanını kısıtlamak ve kısıtlı alandan çıkmaması lazım bu mümkünmüdür?? çok önemli projemde lazım

  19. #36 by alicanaybas on May 19, 2015 - 6:25 pm

    Hocam Merhabalar bu kodu kullanarak programı aynı form load da iki ayrı yere butonlar oluşturdum.. Bu butonları sürüklediğimde aynı kordinata geidiğinde texini değiştiremiom.. Kordinatları galiba kontrol edemiyorum.

    • #37 by Mahmut Can Sozeri on July 8, 2015 - 7:06 pm

      Merhaba,

      Örnek projeyi karmaşık değilse bana yollarsanız bakıp size dönüş yapabilirim.

  20. #38 by ozan on November 7, 2015 - 9:01 pm

    Hocam iyi akşamlar bir sorum olacak.Sizin yapdıgınız orneğe kısmen benzıyor.Web uygulamasında bir alanımız olucak.bu alanın ustunde ise butonlarımız olucak.yukarıdaki butonları surukleyıp bizim olusturdugumuz alana atabılırmıyız. XSLT kullanarak yapmak mumkunmus sanırım.Fikir verebilirmisiniz.

    • #39 by Mahmut Can Sozeri on November 7, 2015 - 9:21 pm

      Merhaba Ozan Bey,

      İlginiz için teşekkür ediyorum. XSLT nedir bilgim yok maalesef. Webte benzer örnek yapmak için JavaScript kullanmanız gerekiyor.

      İyi çalışmalar

  21. #40 by Erdal CEYHAN on December 4, 2015 - 11:59 am

    Hocam merhaba benim mause aracılığıyla groupbox içine dinamik olarak oluşturulan labelların genişliklerini, konumlarını v.b. gibi özelliklerini değiştirmeyi istemek fakat nasıl yapabileceğini bilememek gibi derdim var. Örneğin şöyle bir kafayla groupbox içine yeni labellar oluşturuyorum daha sonra işlem yapacağım diyelim fakat label adı “ch1action” + ch4_s.ToString(); hadi bakalım al sana sıkıntı😦 bir öneriniz yada ilgili örnek ve/veya kaynak önerebilirmisiniz?

    private void olayEkleToolStripMenuItem2_Click(object sender, EventArgs e)
    {
    ch4_s = ch4_s + 1;

    ch4_l = ch4_l + 100;
    Label olay = new Label();
    Point olay_konum = new Point(ch4_l, 0);
    olay.Location = olay_konum;
    olay.Width = 100;
    olay.Height = 20;
    olay.BackColor = Color.Yellow;
    olay.Text = ch4_s.ToString() + “.olay”;
    olay.Name = “ch1action” + ch4_s.ToString();
    olay.TextAlign = ContentAlignment.MiddleCenter;

    groupBox4.Controls.Add(olay);
    }

    • #41 by Mahmut Can Sozeri on December 4, 2015 - 1:27 pm

      Merhaba,

      Buradaki problemi anlayamadım. Ekleme kodunuzda bir hata gözükmüyor, yapmak istediğiniz nedir tam olarak?

      İyi çalışmalar

  22. #42 by Mustafa on January 8, 2016 - 10:56 pm

    Öncelikle merhaba hocam dinamik olarak eklediğim butonlara dediğiniz gibi (sender as Button) şeklinde kullanım yaparak hepsini tek bir evente yönlendirdim şimdi bir buton ekliyorum süper hareket ettirebiliyoruz ikinciyi de ekledim sonradan tamam bunuda hareket ettiriyoruz ama ilk eklediğim butonu tekrar hareket ettirmek istediğimde ilk butonun eventine gittiğinden ilk butonun location ‘ ına atıyor butonu ve ilk butonu kaydırmakta sorun yaşıyorum. Bilmiyorum hala ilgileniyor musunuz ilgilenirseniz çok iyi olur.

    • #43 by Mahmut Can Sozeri on January 11, 2016 - 8:09 am

      Selamlar Mustafa Bey,

      Kodlarını görmeden net bir şey söyleyemiyorum fakat bu tarz problemlerde genelde dinamik olarak atadığınız her bir buton için lokasyon bilgilerini ve diğer tüm bilgilerin doğru atandığına emin olmalısınız. Butonunuzu seçtiğinizde lokasyon bilgilerini bir yerde tuttuğunu kontrol ederseniz çözüme ulabişeceksiniz.

      İyi çalışmalar

      • #44 by Mustafa on January 12, 2016 - 11:02 pm

        Hocam çok teşekkür ederim hatayı kodları buraya yazarken buldum (sender as Button) eksik koymuşum diğer butonun koordinatını alıyormuş tekrar🙂

      • #45 by Mahmut Can Sozeri on January 13, 2016 - 7:49 am

        Rica ediyorum iyi çalışmalar.

  23. #46 by Ahmet on January 12, 2016 - 7:53 pm

    Merhaba Ben bunları kodla oluşturduğum buttonlara uygulamak istiyorum bunları nasıl yapıcam peki ? 8 tane button oluşturuyorum bir yukarıda bir aşağıda toplam 16 tane 8 tanesini hareket ettircek lakin sorunum burda buttonların eventlerine oluşmadan erişemeyiz bunu nasıl yapıcaz peki ?

  24. #47 by Ahmet on January 12, 2016 - 7:57 pm

    Ben bunları kodla oluşturduğum buttonlara nasıl uygulucam peki yani form yüklendiğinde onlar olmucak kodla oluşucak

  25. #48 by kostek on September 17, 2016 - 9:32 am

    teşekkürler

  26. #49 by uğur demir on October 1, 2016 - 9:39 am

    merhaba, çok güzel bir çalışma olmuş.
    benim şöyle bir uygulama yapmam lazım bu konuda yardımcı olursanız sevinirim.
    panel 1 alanın da ki butonumu sürükle bırak mantığı ile panel2 alanına taşımak istiyorum.. taşıdığım andan itibaren 2 butonumun orada oluşmasını istiyorum. panel 1 deki buton yerinde duruyor panel 2 bir buton oluşmuş oluyor. taşırken de butonun bütün özellikleri ile beraber panel 2 ye gelmesini istiyorum. bu konuda yardımlarınızı bekliyorum. tsk

    • #50 by Mahmut Can Sozeri on October 1, 2016 - 11:28 am

      Merhaba Uğur Bey,

      Takıldığınız bölüm tam olarak neresi daha iyi yardımcı olabilirim? Genel olarak böyle bir uygulamada Panel içerisinde taşıdığınız butonu eğer panel1’in içerisinden dışarıya doğru çıktığını location bazında kontrol ederseniz eğer, sürüklenmiş buton, panel 2’in alanına location anlamında girmiş olursa, kod tarafından bir tane button oluşturup, bu button’un özelliklerini ise taşıdığınız butonunun özelliklerinden alarak yapabilirsiniz. Daha sonra, panel 2’in controller’ine eklemiş olursunuz.

      İyi çalışmalar diliyorum.

  27. #51 by ibrahim erel on November 29, 2016 - 9:24 am

    Guzel bir calisma olmus ve gercekten aciklayici.
    Peki Hocam ben bunu yeni buton olusturmayi farkli bir button_click event altinda yaptirdim. Bu sebepten dolayi bu dinamik olarak olusturdugumuz butonlar programi kapatip actigim zaman kaybolmaktadir. Olusturdugumuz bu objectleri harici bir dosyaya kaydedip sonradan tekrar yukleme olayini nasil yapabiliriz. Bununla ilgili bir ornek paylasirsaniz veya bir yardimci olabilirseniz cok guzel olur. Internette arastirdim biraz Serializer ile birkac sey okudum ama isin icinden cikamadim. Su anda butonlar icin sadece ayri bir class acip metodlari ve attributeleri tanimladim. Tesekkurler.

  1. 2012 Yılında Blogumun İle İlgili Rakamlar « Mahmut Can Sözeri

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s