如果光标位于特定的文本框中,则只需单击按钮即可删除该文本框文本

时间:2016-04-02 00:27:55

标签: c# textbox buttonclick cursor-position

我正在构建一个简单的计算器。我有三个textBox:textBox1(第一个操作数),textBox2(第二个操作数)和textBox3(结果)。我有许多可以执行的操作数函数。我还有一个清除所有字段以及其他功能的按钮。

仅当光标位于该文本框中时,我才能使用按钮删除特定文本框中的文本所需的代码。

例如:如果光标位于textBox1中,则该按钮仅清除该文本框。

非常感谢任何帮助。

感谢。

3 个答案:

答案 0 :(得分: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 = "";
}

答案 1 :(得分:0)

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

像:

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

答案 2 :(得分:0)

您可以使用事件:" MouseHover"或" MouseClick"并设置textBox1.Text =""