11 Nisan 2012 Çarşamba

C# ' da Form Titretme

Merhaba akdaşlar. Random nesnemi kullanarak rastgele ve 10 bin defa formumu 10 pixel'e 10 pixel bi alanda titretmek istiyorum. Daha geniş bir alanda titremesini istiyorsam random nesnemin Next metodundaki üst sınırı değiştirebilirim. Fakat daha uzun titremesini istiyorsam while döngümün süresini uzatırım arkadaşlar. Bu seçenekler tamamen size kalmış. 

Yanlız bir ipucu daha vermek gerekirse Point sınıfını kullanırken stract bir sınıf olduğundan dolayı, new diyerek instanse almıyoruz arkadaşlar. (Struct sınıf tipleri value tiplidir.) Point ama ne point 'i bunu belirlemek için bir this.Location kullanıyoruz. Buradaki "this" sizin de bildiğiniz üzere Formun location 'ıdır. Bu nesnenin bir güzelliği var ki koordinatlarına l.X ve l.Y diyerek ve int tipinde ulaşabiliyoruz.

        private void button1_Click(object sender, EventArgs e)
        {
           int c = 0;
           Random r = new Random();
           Point l = this.Location;

           while (c < 10000)
           {
               int x = r.Next(-10, 10);
               int y = r.Next(-10, 10);
               this.Location = new Point(l.X + x, l.Y + y);
               c++;
           }
           this.Location = l;
        }




Hiç yorum yok:

Yorum Gönder