首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.NET TextBox中添加文本而不是设置文本

在.NET TextBox中添加文本而不是设置文本
EN

Stack Overflow用户
提问于 2013-05-06 05:04:49
回答 2查看 83关注 0票数 0

这是我的LostFocus事件处理程序:

代码语言:javascript
复制
    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的时候,文本仍然是空的。这怎么可能是正确的?!

EN

回答 2

Stack Overflow用户

发布于 2013-05-06 05:41:27

我建议使用TextChanged事件而不是KeyPress事件。我假设文本框可能已经是空的,并且用户按了Backspace或其他类似的键。

每次字段中的文本发生更改时都会触发TextChanged事件。

并且,当您用这样的方法填充新的事件处理程序方法时,您拥有的代码应该工作得很好。但是,您可能需要使用

代码语言:javascript
复制
private void txtThrow_LostFocus_TextChanged(object sender, System.EventArgs e)
{

    TextBox source = (TextBox)sender;

    if (source.Text == "" || source.Text == null)
        source.Text = "0"
}

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2013-05-06 10:51:33

尝试此代码私有void txtThrow_LostFocus_TextChanged(object sender,System.EventArgs e) {

代码语言:javascript
复制
TextBox source = (TextBox)sender;

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

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16389135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档