这是我的LostFocus
事件处理程序:
private void txtThrow_LostFocus(object sender, System.EventArgs e)
{
TextBox source = (TextBox)sender;
if (source.Text == "")
source.Text = "0";
}
这实际上干扰了txtThrow_KeyPress
,所以在我对TextBox
进行处理之后只接受一个字符,我发现它有两个:我的,这就是你看到的零!我想要做的是保持txtThrow_KeyPress
完全不变,但每当用户没有输入任何内容时,我想强制执行零。
我从这里可以理解的是txtThrow_LostFocus
在txtThrow_KeyPress
完成其工作之前被触发,因为在触发txtThrow_LostFocus
时,文本仍为空。这怎么可能是正确的?!
答案 0 :(得分:0)
我建议使用TextChanged事件而不是KeyPress事件。我假设文本框已经是空的,并且用户按下Backspace或其他性质。
每次在字段中更改文本时都会触发TextChanged事件。
当您使用此类代码填充新的事件处理程序方法时,您所拥有的代码应该可以正常工作。但是,您可能需要使用
private void txtThrow_LostFocus_TextChanged(object sender, System.EventArgs e)
{
TextBox source = (TextBox)sender;
if (source.Text == "" || source.Text == null)
source.Text = "0"
}
希望这有帮助!
答案 1 :(得分:0)
尝试使用此代码 private void txtThrow_LostFocus_TextChanged(object sender,System.EventArgs e) {
TextBox source = (TextBox)sender;
if (string.nullorempty(source.text)
source.Text = "0"
}