在C#中获取当前关注的文本框

ash*_*lal 3 c# winforms

我有两个文本框和一个按钮.当我按下按钮时,我想知道我当前的插入符号(两个框中的任何一个).我需要知道在哪里插入某个文本.我试过了textbox1.Focused; textbox1.enabled但都没有奏效.我该如何实现呢?谢谢

Ant*_*ram 14

请记住,当您单击该按钮时,您的文本框将不再具有焦点.你需要一种方法来跟踪按钮点击事件之前的焦点.

尝试这样的事情

public partial class Form1 : Form
{
    private TextBox focusedTextbox = null;

    public Form1()
    {
        InitializeComponent();
        foreach (TextBox tb in this.Controls.OfType<TextBox>())
        {
            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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)