0

这是我的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_KeyPresstxtThrow_LostFocus

4

2 回答 2

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"
}

希望这可以帮助!

于 2013-05-05T21:41:26.850 回答
0

试试这段代码 private void txtThrow_LostFocus_TextChanged(object sender, System.EventArgs e) {

TextBox source = (TextBox)sender;

if (string.nullorempty(source.text)
    source.Text = "0"

}

于 2013-05-06T02:51:32.903 回答