文本框不会接受超过 1 个字符而不会在 C# 中消失

本文关键字:字符 消失 文本 | 更新日期: 2023-09-27 18:29:33

private void btnClassNameA_Click(object sender, EventArgs e)
    {
        txtbClassNameA.Visible = true;
        txtbClassNameA.Focus();
    }
private void txtbClassNameA_KeyDown_1(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter) ;
        btnClassNameA.Text = txtbClassNameA.Text;
        txtbClassNameA.Visible = false;
    }

单击按钮后,将显示一个文本框。 我无法让它一次接受超过 1 个字符而不会消失。 它应该通过按回车键消失。 任何帮助将不胜感激!

文本框不会接受超过 1 个字符而不会在 C# 中消失

您当前的代码等效于以下内容:

private void txtbClassNameA_KeyDown_1(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter) { } // does nothing, just evaluates the condition
    btnClassNameA.Text = txtbClassNameA.Text;
    txtbClassNameA.Visible = false;
}

你必须像这样改变它:

private void txtbClassNameA_KeyDown_1(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
       btnClassNameA.Text = txtbClassNameA.Text;
       txtbClassNameA.Visible = false;
    }
}

if 语句的格式不正确。像这样尝试:

if (e.KeyCode == Keys.Enter)
{
        btnClassNameA.Text = txtbClassNameA.Text;
        txtbClassNameA.Visible = false;
}
    private void txtbClassNameA_KeyDown_1(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            btnClassNameA.Text = txtbClassNameA.Text;
            txtbClassNameA.Visible = false;
        }
    }

如果这是你的实际代码,分号可能会让你失望。试试这个。

您的条件后面似乎有一个分号。

现在它正在评估条件,然后继续更新文本并使框不可见。

private void txtbClassNameA_KeyDown_1(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter) 
        {
            btnClassNameA.Text = txtbClassNameA.Text;
            txtbClassNameA.Visible = false;
        }
    }

可能会给你更好的结果。