如何知道C#中最后一次点击的文本框

本文关键字:文本 最后一次 何知道 | 更新日期: 2023-09-27 18:22:20

这不是重复的问题这里有一个类似的问题,但它的答案对我没有帮助。

我在form1(windows表单)上有一个按钮和3个文本框,显示的代码实现了以下功能:

通过点击按钮,它将文本输入到最后一次点击的文本框中,效果非常好,因为所有3个框都是文本框类型。现在我想在form1中添加一个richTextBox,我希望这个richTextBox的行为方式与3个文本框相同(我的意思是,当我点击richTextBox时,我仍然可以键入文本)。在这种情况下,我有一个混合控件(textBoxes和richTextBox),如果它只有richTextBoxes或只有textBoxes,那么很容易解决。

我需要修改这段代码,以便其中一个控件(3个文本框和richTextBox)在被点击时获得焦点,然后button1知道被点击了哪个框,这样它就可以在其中插入文本。有人能帮我吗。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    public TextBox Selected_TextBox = null ;
    private void Form1_Load(object sender, EventArgs e)
    {
        this.ActiveControl = textBox1;
        textBox1.Focus();   // set textbox1 foucsed when form1 loads
        Selected_TextBox = textBox1;  // idintify the SelectedTextBox.
    }
    private void textBox1_Click(object sender, EventArgs e)
    {
        Selected_TextBox = sender as TextBox; // bcomes the selected one in click event
    }
    private void textBox2_Click(object sender, EventArgs e) 
    {
        Selected_TextBox = sender as TextBox; 
    }
    private void textBox3_Click(object sender, EventArgs e) 
    {
        Selected_TextBox = sender as TextBox;         
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Selected_TextBox.Focus(); 
        Selected_TextBox.SelectedText = button1.Text;
        Selected_TextBox.SelectionStart = Selected_TextBox.Text.Length;
    }
}

如何知道C#中最后一次点击的文本框

使用TextBoxBase,它是TextBoxRichTextBox之间的公共基类。