在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()则指定一个值。 然后在按钮中为类范围的字符串变量设置一个条件,如果类范围的变量具有类型的值,那么该文本框将填充到您想要放入文本框中的任何内容。

它对我有用,所以我相信它应该对你有用。