在C#中获取当前关注的文本框
我有两个文本框和一个按钮。 当我按下按钮时,我想知道我当前的插入符号(两个框中的任何一个)。 我需要知道在哪里插入某个文本。 我试过textbox1.Focused
; textbox1.enabled
但都没有用。 我该如何实现呢? 谢谢
请记住,当您单击该按钮时,您的文本框将不再具有焦点。 你需要一种方法来跟踪按钮点击事件之前的焦点。
尝试这样的事情
public partial class Form1 : Form { private TextBox focusedTextbox = null; public Form1() { InitializeComponent(); foreach (TextBox tb in this.Controls.OfType()) { tb.Enter += textBox_Enter; } } void textBox_Enter(object sender, EventArgs e) { focusedTextbox = (TextBox)sender; } private void button1_Click(object sender, EventArgs e) { if (focusedTextbox != null) { // put something in textbox focusedTextbox.Text = DateTime.Now.ToString(); } } }
有一种非常简单的方法可以做到这一点。 您的要求很简单,因为您只有两个文本框。
您可以指定一个类范围的字符串变量,该变量在调用textbox1_GotFocus()
时textbox1_GotFocus()
,以及textbox2_GotFocus()
。 因此,如果调用该textbox GotFocus()
则指定一个值。 然后在按钮中为类范围的字符串变量设置一个条件,如果类范围的变量具有类型的值,那么该文本框将填充到您想要放入文本框中的任何内容。
它对我有用,所以我相信它应该对你有用。