mertugruul Posted April 18, 2015 Share Posted April 18, 2015 PicturenBox2'nin Location.Y koordinatını -75 olana kadar 1'er 1'er arttıracağım. Ama arttırıkende bu artışı görmek istiyorum formda nasıl yapabilirim. Yani, Form açıkkken pictureBox'ın hareket ettiğini görücem. Ekran Görüntüsü: http://prntscr.com/6v4wnp private void Form1_Activated(object sender, EventArgs e) { for (; ; ) { if (pictureBox2.Location.Y != -75) pictureBox2.Location = new Point(pictureBox2.Location.X, pictureBox2.Location.Y - 1); else break; } } Kodlarım böle. İlk sonsuz döngüye soktum. Form'umun Location.Y koordinatının en sonu -75 olduğu için manuel olarak -75 yazmak zorunda kaldım. Eğer bunun manuel değilde otomatik olarak bir yolu varsa sölerseniz iyi olur. Daha sonra pictureBox'ın Location.Y özelliğini yukarıya doğru birer birer arttırdım. -75'e geldiğinde ise döngüden çıkarttım. Ama ben bu pictureBox2'yi hareket ederken görmek istiyorum form üzerinde. Quote Link to comment Share on other sites More sharing options...
Bitmap Posted April 18, 2015 Share Posted April 18, 2015 (edited) Timer yada asenkron bir yapı kullanarak yapmalısın, diğer türlü pek faydalı olmaz. Buradan (Dropbox) bir örnek hazırladım nesneyi nasıl hareket ettirebileceğinle ilgili. Activated event'ına timer'ı başlatıp belli bir yere geldiğinde ise istediğin işlemi durdurabilirsin Edited April 18, 2015 by Bitmap Quote Link to comment Share on other sites More sharing options...
mertugruul Posted April 18, 2015 Author Share Posted April 18, 2015 (edited) Konuyu açtıktan hemen sonra timer aklıma geldi. Yazmayı unuttum. Teşekkür ederim yine de. http://prntscr.com/6v4wnp Ama şöyle bir sorunum var. Resimde de görüldüğü gibi pictureBox2'yi ben Location.Y koordinatı -68 olana kadar ilerleticem. ilerliyor daha sonra ise -68 olduğumu tekrar eksi konumuna gelip aynı yerden devam etmesini istiyorum. Lakin gidip geri gelmiyor :D private void Form1_Load(object sender, EventArgs e) { timer1.Interval = 100; timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { if (pictureBox2.Location.Y != -68) { pictureBox2.Location = new Point(pictureBox2.Location.X, pictureBox2.Location.Y - 15); if (pictureBox2.Location.Y == -68) { pictureBox2.Location = new Point(158, 305); } } } Edit: Sorun çözüldü. -15 yazarak -68 konumuna ulaşmadığı için -1 yapmak zorunda kaldım. Teşekkürler. Edited April 18, 2015 by mertugruul Quote Link to comment Share on other sites More sharing options...
Bitmap Posted April 18, 2015 Share Posted April 18, 2015 if (pictureBox2.Location.Y != -68) { pictureBox2.Location = new Point(pictureBox2.Location.X, pictureBox2.Location.Y - 15); if (pictureBox2.Location.Y <= -68) { pictureBox2.Location = new Point(158, 305); } } şeklinde denediğinde problem kalmaz sanırımş. Quote Link to comment Share on other sites More sharing options...
mertugruul Posted April 19, 2015 Author Share Posted April 19, 2015 (edited) if (pictureBox2.Location.Y != -68) { pictureBox2.Location = new Point(pictureBox2.Location.X, pictureBox2.Location.Y - 15); if (pictureBox2.Location.Y <= -68) { pictureBox2.Location = new Point(158, 305); } } şeklinde denediğinde problem kalmaz sanırımş. Peki <= -68'deki amaç nedir? 1. if deyimi -68 deyilmi diye bakıcak ve -15'er arttırıyor pictureBox'ı. Peki 2.if deyimini pek anlayamadım mantıken olarak. -68 ve -68'den küçük ise diyoruz ama neden?. Açıklayabilirmisin sade ve anlaşılır şekilde iki if deyimininde çalışma mantığını? Edited April 19, 2015 by mertugruul Quote Link to comment Share on other sites More sharing options...
Bitmap Posted April 19, 2015 Share Posted April 19, 2015 (edited) Peki <= -68'deki amaç nedir? 1. if deyimi -68 deyilmi diye bakıcak ve -15'er arttırıyor pictureBox'ı. Peki 2.if deyimini pek anlayamadım mantıken olarak. -68 ve -68'den küçük ise diyoruz ama neden?. Açıklayabilirmisin sade ve anlaşılır şekilde iki if deyimininde çalışma mantığını? şimdi ilk if konum kontrolü yapıyor. yani zaten -68 den küçük ise hereket etmesine gerek yok. içteki if ise 68'den küçük olup olmadığına bakıyor azaldıktan sonra. eğer 68 den küçük ise yani 15 15 azaltırken -50-15 = -75 gibi bir duruma geldiyse yeniden konumlandırma yapıyor. 15 15 azaltınca -68 e gelemediğinden dolayı -68 den küçük yada eşitmi kontrolü daha mantıklı olur. iki tane if sizin kodunuzda vardı. sadece onu düzenledim.. edit: aslında ilk if deyimi içinde > -68 diyebilirsiniz. sonuçta 15 azaldığında denk gelmesine gerek yok :) Edited April 19, 2015 by Bitmap Quote Link to comment Share on other sites More sharing options...
mertugruul Posted April 19, 2015 Author Share Posted April 19, 2015 (edited) şimdi ilk if konum kontrolü yapıyor. yani zaten -68 den küçük ise hereket etmesine gerek yok. içteki if ise 68'den küçük olup olmadığına bakıyor azaldıktan sonra. eğer 68 den küçük ise yani 15 15 azaltırken -50-15 = -75 gibi bir duruma geldiyse yeniden konumlandırma yapıyor. 15 15 azaltınca -68 e gelemediğinden dolayı -68 den küçük yada eşitmi kontrolü daha mantıklı olur. iki tane if sizin kodunuzda vardı. sadece onu düzenledim.. edit: aslında ilk if deyimi içinde > -68 diyebilirsiniz. sonuçta 15 azaldığında denk gelmesine gerek yok :) -75'in -68'den küçük olduğu sonradan aklıma geldi. Düşünemedim onu. Teşekkür ederim yardımınız için. Edited April 19, 2015 by mertugruul Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.