2016-04-02 19 views
0

Basit bir hesap makinesi yapıyorum. Ben üç textBoxes var: textBox1 (ilk işlenen), textBox2 (ikinci işlenen) ve textBox3 (sonuç). Yapılabilecek çok sayıda işlenen fonksiyonum var. Ayrıca tüm alanları ve diğer işlevleri de temizleyecek bir düğme var.İmleç belirli bir textBox içinde ise, sadece bu textBox metnini bir düğmeyle silin

Yalnızca imleç bu metin kutusundayken, belirli bir metin kutusundaki metni silmek için gereken kodla ilgili bir sorun yaşıyorum.

Örn: imleç, textBox1 durumundaysa, düğme yalnızca bu metin kutusunu temizler.

Herhangi bir yardım

çok takdir edilmektedir.

Teşekkürler.

cevap

1

odağı kazanacaktır.

TextBoxes'dan hangisinin son numaralı odağı tuttuğuna dikkat etmelisiniz.

TextBox focusedTextBox = null; 
Şimdi

hook up her üçTextBoxes ait Enter olayla bu olay:

private void textBoxes_Enter(object sender, EventArgs e) 
{ 
    focusedTextBox = sender as TextBox; 
} 

O zaman bu sadece birisi kullanıcıyı temizleyecektir

bunun için bir sınıf düzeyi değişkeni oluşturun sonuncuydu:

private void buttonClearCurrent_Click(object sender, EventArgs e) 
{ 
    if (focusedTextBox != null) focusedTextBox.Text = ""; 
} 
+0

Teşekkür ederim, bu benim de bir sorunum vardı. Yardımın için minnettarım. –

0

Bu durumda, metin kutusundaki Odaklanmış özelliği kullanmanız gerekir. Ancak, hangi metin kutusunun odaklandığını belirlemek için bir döngü oluşturmalısınız.

gibi:

var focusedControl; 
foreach(var control in this.Controls) 
{ 
    if(control is TextBox) 
    { 
     if(control.Focused) 
     { 
      focusedControl = control; 
      break; 
     } 
    } 
} 
+0

Bu, Düğmeye tıklandığında çalışmaz. Daha önce takip etmesi gerekiyor! – TaW

+0

Evet ... haklısın ... senin çözümün daha iyi bir yoldur .. .thx .. = D @Taw – Henrique

0

Sen olayı kullanabilirsiniz: Button tıklandığında "MouseHover" veya "mouseClick" ve set TextBox1.Text = ""