这是我的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的时候,文本仍然是空的。这怎么可能是正确的?!
发布于 2013-05-06 05:41:27
我建议使用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-06 10:51:33
尝试此代码私有void txtThrow_LostFocus_TextChanged(object sender,System.EventArgs e) {
TextBox source = (TextBox)sender;
if (string.nullorempty(source.text)
source.Text = "0"}
https://stackoverflow.com/questions/16389135
复制相似问题