1

textBox.text只有当它不在焦点上时,我才想更改它。例子:

public void updateValue()
    {
        if (!this.valueTB.IsFocused)
            this.valueTB.Text = updatedValue.ToString();
    } 

但问题是,this.valueTB.IsFocused属性只有在实际聚焦时才会发生变化,而在聚焦时不会发生变化。

4

5 回答 5

2

IsFocused当 TextBox 获得或失去焦点时,该属性肯定会更改其值。

但 TextBox 也提供GotFocusLostFocus事件。

于 2012-12-21T11:38:51.413 回答
0

仅使用IsFocused属性:

public void updateValue()
{
     if((!tb.IsFocused) || (tb.IsFocused == false))
     {
          tb.Text = "The text was updated when I wasn't focused. Is't OK?";
     }
} 
于 2012-12-21T12:38:59.927 回答
0

也许你可以取一个布尔值来告诉你 TB 是否集中:

    bool TBIsFocused = false;
    private void valueTB_Enter(object sender, EventArgs e)
    {
        TBIsFocused = true;
    }

    private void valueTB_Leave(object sender, EventArgs e)
    {
        TBIsFocused = false;
    }
于 2012-12-21T12:03:14.183 回答
0

问题是IsFocused事件仅在获得焦点时才被触发一次,然后它就不会触发。我认为您希望它连续触发此事件直到Textbox获得焦点。为此,您必须在特定间隔内继续检查它是否具有焦点。

于 2012-12-21T11:54:23.263 回答
0

您可以使用文本框焦点事件Lost

GotFocus

于 2012-12-21T11:43:22.633 回答