Çö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
İlgilenip yazdığınız için çok teşekkür ederim.İnternette baktım ama bulamadım aradığım cevabı
Ya ben basit bir labirent oyunu yaptım labeller alan oluyor.Farenin ucu eyer labele değerse messagebox da Alana deydiniz yazıyor.Dedimki bu değdiğim labelin Arka planı mouse üzerinde olduğunda mavi renk olsun paralelindede alana deydiniz yazsın thread.Sleep(300) yaptım uyuttum falan ama arkaplan mouse üzerine gelince renk değiştirmiyor.Anlattığın şeyi nasıl ona uyarlayabilirim sence ?

Ş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
 

Geri
Yukarı