如何使文本框自动捕获用户正在键入的内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使文本框自动捕获用户正在键入的内容?相关的知识,希望对你有一定的参考价值。
我正在创建一个登录表单,就像标题所说的那样,有没有办法让我的文本框(在这种情况下是用户名的文本框)捕获用户输入的内容?我想复制Facebook主页的功能。如果您没有登录,并且您进入FB并尝试输入,无论您输入的是什么,它都显示在标有“电子邮件或电话”的文本框中。另外,我是C#的新手。
编辑:我希望文本框捕获用户输入的文本,即使用户没有选择所述文本框。我的英语不是很好,所以我不知道如何恰当地说出我想说的话。抱歉。
编辑2(来自我的评论):我想再次为我的英语道歉。我要再试一次。例如,我打开了登录表单,然后它出现了。没有选择控制或焦点。现在,当用户键入内容时,我希望用户的文本框成为焦点,并且用户键入的内容也会在那里键入。
所以这基本上是一个事件的意图。你应该使用你的TextChanged()
的TextBox
事件。每次textBox1.Text
属性的内容发生变化时,都会调用此事件。
private void textBox1_TextChanged(object sender, EventArgs e)
{
targetTextBox.Text = textBox1.Text;
}
您可以将文本值存储在string
属性中以供进一步全局使用。您可以使用string
而不是简单的Dictionary<TKey,TValue>
属性。作为密钥,您可以存储以string
身份登录的特定用户,并且它的值可以是此特定用户编写的所有输入的List<string>
。
根据OP的新需求进行编辑:
所以首先你应该把焦点设置到你想要的textBox
。如果我理解正确,您希望在加载登录表单后立即执行此操作。所以将它添加到登录表单的构造函数的末尾。
this.ActiveControl = textBox1; /* name of the textBox you want to set focus to*/
然后订阅TextChanged
事件为textBox
获得焦点,就是这样。这可以在properties
窗口中以最简单的方式完成,一旦您查看表单的设计就会显示。
根据新提供的代码进行编辑:这是关于将焦点设置为textBox1
,指的是OP的代码环境。
private void button1_Click(object sender, EventArgs e)
{
Hide();
Form2 form2 = new Form2();
form2.ShowDialog();
Show();
//simply setting the focus here
this.ActiveControl = textBox1;
}
或者你可以,例如订阅活动Form1_VisibleChanged()
。然后你甚至不需要在构造函数中设置焦点,只是在这个事件中。
private void Form1_VisibleChanged(object sender, EventArgs e)
{
this.ActiveControl = textBox1;
}
当Form1
的可见性发生变化时,每次都会触发此事件,因此即使在第一次初始化或每次调用Show()
之后也是如此。
以上是关于如何使文本框自动捕获用户正在键入的内容?的主要内容,如果未能解决你的问题,请参考以下文章