c# textbox 按下回车清除文本内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# textbox 按下回车清除文本内容相关的知识,希望对你有一定的参考价值。

private void textBox1_KeyDown(object sender, KeyEventArgs e)

if (e.KeyCode == Keys.Enter)

this.textBox1.Text = "";


我这么做了,但是我的textBox1是多行文本框,运行的时候每次按下回车内容是清除了但光标总是在第二行,我要光标在最开始的位置,求解

参考技术A 这是因为你在KeyDown事件结束以后,系统还会给一个Enter回车字符给Textbox1,所以一直都会在第二行,你改成下面这样就行了
if (e.KeyCode == Keys.Enter)

this.textBox1.Text = "";
e.Handled = true;
参考技术B

在KeyUp事件进行处理!

private void textBox1_KeyUp(object sender, KeyEventArgs e)

            if (e.KeyCode == Keys.Enter)
            
                this.textBox1.Text = "";
            
 

如果是多行文本KeyDown的话,肯定会向文本框加入换行的!

本回答被提问者采纳
参考技术C boolean tag = true;
configure:3527: error: in `/Users/niko/memcachedbuild/libevent-1.4.14-stable':
configure:3531: error: C compiler cannot create executables
See `config.log' for more details.

C#:如何在文本框中按下回车键触发按钮,但仍然允许“Ctrl+A”等快捷键通过?

【中文标题】C#:如何在文本框中按下回车键触发按钮,但仍然允许“Ctrl+A”等快捷键通过?【英文标题】:C#: How to make pressing enter in a text box trigger a button, yet still allow shortcuts such as "Ctrl+A" to get through? 【发布时间】:2011-01-13 19:26:57 【问题描述】:

对不起,标题太长了,但我想不出另一种说法。

我有这个:

    private void textBoxToSubmit_KeyDown(object sender, KeyEventArgs e)
    
        if (e.KeyCode == Keys.Enter)
        
            buttonSubmit_Click((object)sender, (EventArgs)e);
        
    

...为了使在文本框中按回车触发“提交”按钮。但是,这也会阻止快捷方式通过。 (不太清楚这与它有什么关系,也许只有多键组合?)

ShortcutsEnabled 设置为 true。

提前致谢!

【问题讨论】:

没有复制,我没想到会有。你需要 e.SuppressKey = true 来停止哔哔声。 至于标题:您可以将尚未完成的部分放在问题正文的第一句中。无论如何,第一句话现在是题外话了。 【参考方案1】:

您不能在表单属性窗口中使用AcceptButton 吗?这会设置 Enter 按键的默认行为,但您仍然可以使用其他快捷键。

【讨论】:

我明白了!感谢您澄清这一点。我显然是 C# 的新手,所以像这样简单的事情让我感到困惑。谢谢! 没问题 - 乐于助人:) 如果您希望多个控件每个都接受输入,但不一定每个都有一个按钮? Nyerguds,阅读下面的答案。基本上,当每个控件获得焦点以设置正确的 AcceptButton 时,设置就会触发。我的所有“离开”功能都将 AcceptButton 设置回 OKbtn,而不是下面的答案建议的 null,但相同。【参考方案2】:

如果您希望仅当用户在文本框中时返回触发操作,您可以将所需的按钮分配给 AcceptButton 控件,如下所示。

    private void textBox_Enter(object sender, EventArgs e)
    
        ActiveForm.AcceptButton = Button1; // Button1 will be 'clicked' when user presses return
    

    private void textBox_Leave(object sender, EventArgs e)
    
        ActiveForm.AcceptButton = null; // remove "return" button behavior
    

【讨论】:

如果是用户控件,您可以使用ParentForm.AcceptButton【参考方案3】:

您可以使用 KeyPress 而不是 KeyUp 或 KeyDown 更有效 以下是处理方法

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    
        if (e.KeyChar == (char)Keys.Enter)
        
            e.Handled = true;
            button1.PerformClick();
        
    

希望有效果

【讨论】:

可以为按钮以外的其他控件的事件侦听器扩展吗?我似乎找不到任何 ListBox.PerformDoubleClick() 来触发其双击操作。 啊,没关系。更容易调用底层的监听器函数。顺便说一句...如果表单设置了 AcceptButton,则此代码似乎不起作用。【参考方案4】:

如果使用 ASP.NET,则不需要任何客户端代码。 下面的示例是一个带有搜索按钮的 boostrap 输入框,该按钮带有一个很棒的字体。

您会看到,我使用了一个 asp:Panel,而不是使用带有“input-group”类的常规

标签。 DefaultButton 属性设置为我的按钮的 id,就可以了。

在下面的示例中,在输入文本框中输入内容后,您只需按 Enter 即可提交。

<asp:Panel DefaultButton="btnblogsearch" runat="server" CssClass="input-group blogsearch">
<asp:TextBox ID="txtSearchWords" CssClass="form-control" runat="server" Width="100%" Placeholder="Search for..."></asp:TextBox>
<span class="input-group-btn">
    <asp:LinkButton ID="btnblogsearch" runat="server" CssClass="btn btn-default"><i class="fa fa-search"></i></asp:LinkButton>
</span></asp:Panel>

【讨论】:

【参考方案5】:

https://***.com/a/16350929/11860907

如果您添加e.SuppressKeyPress = true;,如此链接中的答案所示,您将抑制出现的烦人的叮当声。

【讨论】:

以上是关于c# textbox 按下回车清除文本内容的主要内容,如果未能解决你的问题,请参考以下文章

C# 如何在文本文件中添加数据而不清除原来的内容?

C# 清除当前窗体中TextBox控件中的内容

在c#中的TextBox响应回车键发出“咚”的一声解决方法

asp.net c# 回车enter文本框填满后提交

textbox根据内容自动调整高度

C#TextBox按下回车键触发的事件名称是?