首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除TextBox会留下一个不可见的字符

清除TextBox会留下一个不可见的字符
EN

Stack Overflow用户
提问于 2018-06-12 18:47:31
回答 3查看 294关注 0票数 0

我正在开发一个基于文本的RPG。如果在textbox (tUser)中键入某些内容,则调用Input()方法并处理查询。如果它符合一定的条件,其他的事情,例如退出比赛,将发生。

代码语言:javascript
复制
public void Input()
{
    if (tUser.Text.ToLower() == "ende" || listening)
    {
        if (tUser.Text.ToLower() == "ende")
        {
            if (MessageBox.Show(playername + 
                ", wollt Ihr wirklich das Spiel ohne Speichern verlassen?", "Beenden", 
                MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Application.Exit();
            }
        }
        else
        {
            input = tUser.Text;

            if (accept == 1 && !input.Any(char.IsDigit))
            {
                tRPG.AppendText("\nBitte gebt nur eine Zahl ein!");
            }
            else
            {     
                listening = false;
            }
        }        
    }

    // Reset
    input = "";
    tUser.Clear();
}

如果按Enter键,您的查询将被提交。处理完成后,将清除TextBox。

如果您尝试相同或任何其他命令(再次),在删除TextBox中的“不可见”字符之前,不会发生任何事情。

我也尝试过tUser.ClearUndo()

这个角色是什么,我如何避免它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-14 11:00:16

由于某些原因,文本框保留一个回车。将e.Handled = true添加到调用Input()的方法中可以解决这个问题。

代码语言:javascript
复制
private void tUser_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        e.Handled = true;
        Input();
    }
}

e.Handled防止在此处理程序完成后处理enter消息(来源)。

票数 0
EN

Stack Overflow用户

发布于 2018-06-12 19:30:56

为什么不直接将文本设置为空字符串而不是使用clear呢?

代码语言:javascript
复制
tUser.Text = string.Empty;
票数 0
EN

Stack Overflow用户

发布于 2018-06-12 21:53:51

嗯,我相信这与这样一个事实有关:您的关键事件仍然设置文本框的值,或者在清除文本框之后设置类似的值。无论如何,一个快速的解决方法就是只使用tUser.trimStart(‘')或类似的东西。

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

https://stackoverflow.com/questions/50823885

复制
相关文章

相似问题

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