textBox.text
只有当它不在焦点上时,我才想更改它。例子:
public void updateValue()
{
if (!this.valueTB.IsFocused)
this.valueTB.Text = updatedValue.ToString();
}
但问题是,this.valueTB.IsFocused
属性只有在实际聚焦时才会发生变化,而在聚焦时不会发生变化。
仅使用IsFocused
属性:
public void updateValue()
{
if((!tb.IsFocused) || (tb.IsFocused == false))
{
tb.Text = "The text was updated when I wasn't focused. Is't OK?";
}
}
也许你可以取一个布尔值来告诉你 TB 是否集中:
bool TBIsFocused = false;
private void valueTB_Enter(object sender, EventArgs e)
{
TBIsFocused = true;
}
private void valueTB_Leave(object sender, EventArgs e)
{
TBIsFocused = false;
}
问题是IsFocused
事件仅在获得焦点时才被触发一次,然后它就不会触发。我认为您希望它连续触发此事件直到Textbox
获得焦点。为此,您必须在特定间隔内继续检查它是否具有焦点。