2016-04-02 14 views
0

我正在构建一个简单的计算器。我有三个文本框:textBox1(第一个操作数),textBox2(第二个操作数)和textBox3(结果)。我有许多可以执行的操作数函数。我也有一个按钮,可以清除所有字段以及其他功能。如果光标位于特定的文本框中,只需使用按钮单击删除该文本框文本

我很困难,只有当光标在文本框中时,才需要使用按钮删除特定文本框中的文本。例如:如果光标位于textBox1中,该按钮只会清除该文本框。

任何帮助,非常感谢。

谢谢。

回答

1

当点击Button将获得焦点。

所以你需要跟踪你的TextBoxes得到重点最后

创建一个类级别的变量:

TextBox focusedTextBox = null; 

现在hook up将此事件与Enter事件的所有三个TextBoxes

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

那么这只会清除一个用户在最后:

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

谢谢,这正是我遇到的问题。我感谢您的帮助。 –

0

在这种情况下,您必须在文本框中使用Focused属性。 但是你需要做一个循环来识别哪个文本框是关注的。

,如:

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

单击按钮时这不起作用。他需要保持跟踪! – TaW

+0

是的......你是对的......你的解决方案是一种更好的方式..thx .. = D @Taw – Henrique

0

您可以使用事件: “MouseHover” 或 “鼠标点击”,并设置textBox1.Text = “”

相关问题