Çözüldü C# form içi backspace tuşuna basılı tutma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
16 Temmuz 2021
Mesajlar
529
Çözümler
11
Yer
Ankara - Türkiye
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Visual Studio 2019 içerisinde bir ekran klavyesi üzerinde çalışıyorum. Her şey tamam, her şey güzel çalışıyor güzel fakat test ederken fark ettiğim bir şey var ki silme (backspace) tuşuna basılı tuttuğumda normal klavyelerde olduğu gibi hızlı silme gibi bir özellik yok. Bunu nasıl yapacağımı bilmediğim için buraya başvurma gereği duydum.

İntenetten araştırdığımda MouseDown ve MouseUp gibi kavramlarla karşılaştım. Bu işlerde yeni olduğum için beceremedim. Sadece backspace tuşu için Kodum;

C#:
private void sil_Click(object sender, EventArgs e)
        {
            SendKeys.Send("{BS}");
        }
 
Son düzenleyen: Moderatör:
Çözüm
Yok hocam bunu yazdım. Eve gideyim projeyi göndereceğim.



Google Drive'a yükledim tüm projeyi.

Google Drive bağlantısı

Aslında kodların düzgün. Sadece yeni başladığın için özelik ekleme kısmını sanırım bilmiyorsun.
Sağda bulunan özelikler penceresinde yıldırma basıyorsun.
Kod kısmında yazanları sil butonunun eventine ekliyorsun.

1664526970140.png


1664526883905.png
Aklıma gelen en pratik çözüm.

C#:
bool durum=false;
 private void button1_Click(object sender, EventArgs e)
 {
 durum = true;
 }

 private void button1_MouseMove(object sender, MouseEventArgs e)
 {
 if (durum==true)
 {
 textBox1.Text += "a";
 }
 }

 private void button1_MouseLeave(object sender, EventArgs e)
 {
 durum = false;
 }
 
Aklıma gelen en pratik çözüm.

C#:
bool durum=false;
 private void button1_Click(object sender, EventArgs e)
 {
 durum = true;
 }

 private void button1_MouseMove(object sender, MouseEventArgs e)
 {
 if (durum==true)
 {
 textBox1.Text += "a";
 }
 }

 private void button1_MouseLeave(object sender, EventArgs e)
 {
 durum = false;
 }

Çalışmadı hocam. Şunu da belirteyim: Yapmak istediğim şey form içinde çalışmayacak. Aksine Windows içerisinde çalışacak. Bu nedenle SendKeys.Send("{BS}"); gibi eventler kullanıyorum.
 
Çalışmadı hocam. Şunu da belirteyim: Yapmak istediğim şey form içinde çalışmayacak. Aksine Windows içerisinde çalışacak. Bu nedenle SendKeys.Send("{BS}"); gibi Event'ler kullanıyorum.

O zaman biraz bekleyin PC'ye geçeyim.

C#:
private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            timer1.Enabled = true;
        }

        private void button1_MouseUp(object sender, MouseEventArgs e)
        {
            timer1.Enabled = false;

        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            SendKeys.Send("{BACKSPACE}");
        }

Artı olarak Click de ekleyin ki tek tıklamayı da alsın.
C#:
private void button1_Click(object sender, EventArgs e)
        {
            SendKeys.Send("{BACKSPACE}");
        }

Yapamasan yine haber ver yardımcı olurum.
 
Son düzenleme:
O zaman biraz bekleyin PC'ye geçeyim.

C#:
private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            timer1.Enabled = true;
        }

        private void button1_MouseUp(object sender, MouseEventArgs e)
        {
            timer1.Enabled = false;

        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            SendKeys.Send("{BACKSPACE}");
        }

Artı olarak Click de ekleyin ki tek tıklamayı da alsın.
C#:
private void button1_Click(object sender, EventArgs e)
        {
            SendKeys.Send("{BACKSPACE}");
        }

Yapamasan yine haber ver yardımcı olurum.

Hocam timer1'i tanımlayan şey nedir? Timer tanımlamadığım için hata veriyor.

Geç cevap yazdığım için kusura bakmayın. Pek müsait olamadım.
 
Hocam timer1'i tanımlayan şey nedir? Timer tanımlamadığım için hata veriyor.

geç cevap yazdığım için kusura bakmayın. Pek müsait olamadım.

Sıkıntı yok.
Timer'i araç kutusu üzerinden atın.
Sonra üzerine çift tıklayın timer1_tick çıkar oraya yazın.
Artı olarak ınterval değerini de 1 yapın daha hızlı siler ne kadar yükseltirsen o kadar yavaş siler.

1664396494039.png

1664396614732.png
 
Son düzenleme:
Büyük ihtimale bunu yazmadın.
C#:
protected override CreateParams CreateParams
        {
            get
            {
                CreateParams param = base.CreateParams;
                param.ExStyle |= 0x08000000;
                return param;
            }
        }

Yok hocam bunu yazdım. Eve gideyim projeyi göndereceğim.



Google Drive'a yükledim tüm projeyi.

Google Drive bağlantısı
 
Son düzenleme:
Yok hocam bunu yazdım. Eve gideyim projeyi göndereceğim.



Google Drive'a yükledim tüm projeyi.

Google Drive bağlantısı

Aslında kodların düzgün. Sadece yeni başladığın için özelik ekleme kısmını sanırım bilmiyorsun.
Sağda bulunan özelikler penceresinde yıldırma basıyorsun.
Kod kısmında yazanları sil butonunun eventine ekliyorsun.

1664526970140.png


1664526883905.png
 
Çözüm

Geri
Yukarı