2015-11-17 32 views
0

這是沒有重複的問題有一個類似的問題在這裏問,但其答案並沒有幫助我。如何知道C#中最後點擊的文本框?

我有一個按鈕,在Form1上(Windows窗體)3個文本框,在顯示的代碼實現如下:

通過點擊按鈕,它的類型的文本進入最後點擊文本框和它的作品完美的,因爲所有的3盒是文本框類型。 現在我想在form1中添加一個richTextBox,並且我希望這個richTextBox的行爲與3個文本框(我的意思是當我點擊richTextBox時仍然可以鍵入文本)的行爲相同。在這種情況下,我有一個混合控件(textBoxes和一個richTextBox),如果它只是richTextBoxes或只有文本框,那麼它很容易解決。

我需要修改此代碼,使其中一個控件(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; 
    } 
} 

回答

6

使用TextBoxBase其是TextBoxRichTextBox之間的公共基類。

+3

換句話說,將您的Selected_TextBox字段聲明更改爲:public TextBoxBase Selected_TextBox = null; –

相關問題