Çözüldü C# MouseMove Event

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Mustafaa1

Centipat
Katılım
29 Nisan 2022
Mesajlar
109
Çözümler
4
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar Windows form açtım diyelim. 50 tane label koydum. Ben diyorum ki mousemove Event'i hangi labele gelirse onun arka plan rengini mavi yapsın. Bunun kodu lazım. 50 tane method oluşturup yapılabilir ama işlem kalabalığı. Basit bir yöntemi olabileceğini düşündüm.
 
Son düzenleyen: Moderatör:
Çözüm

Şimdi tam olarak anlamadım, öncelikle verdiğim kod direk üstüne gelince arka planı mavi yapıyor zaten. Buna ek olarak LabelsMouseEnter methodunda MessageBox ekleyip ekrana hata verebilirsin.

Thread.Sleep ile neyi amaçladığını tam olarak anlamadım ama şöyle bir not düşeyim; Thread.Sleep ile ana thread'i uyutursan form ekranı da sana tepki veremez çünkü thread'i uyutmuş olursun.

Kodu oyunun için şöyle güncelleyebilirsin:
C#:
private void Form1_Load(object sender, EventArgs e)
{
    _myLabels = new List<Label>() { label1, label2, label3, label4, label5, label6 };
    _myLabels.ForEach(label => {
        label.MouseEnter += LabelsMouseEnter;
    });
}

private void LabelsMouseEnter(object sender, EventArgs e)
{
    ((Label)sender).BackColor = Color.Red;
    MessageBox.Show("Oyun Bitti", "Alana değdin!", MessageBoxButtons.OK, MessageBoxIcon.Error);
// Oyunu yeniden başlatma satırı*
}

* Yıldız koyduğum kısım için bir method yaz veya direk bu satırdan ok'ye basıldıktan sonra label'ın arka planını temizle ki arka planı kırmızı kalmasın. İşte nasıl istersen öyle yönlendirirsin buradan sonra.
C# seviyem şuan temel düzeyde oyun programlama düşündüğüm için böyle basit oyunlar yapmaya karar vermiştim sonuçta beceremesemde fikir yürüte yürüte öğrenirim bişeyleri diye düşündüm
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…