我正在處理窗體應用程序(C#),其中用戶正在窗體中輸入數據。在編輯表單中的數據時,用戶可以在任何時候單擊表單上的某個按鈕來執行某些操作。默認情況下,焦點轉到單擊按鈕,以便用戶必須再次單擊要編輯的控件才能繼續修改表單上的數據。我需要做的是在處理按鈕點擊事件後將焦點返回到最後編輯的控件。下面是一個示例屏幕截圖,說明什麼我談論:點擊winform應用程序中的按鈕後,如何將焦點返回到上次使用的控件?
用戶可以在TextBox1中,TextBox2中,textbox3等輸入數據,然後單擊按鈕。我需要按鈕將焦點返回到最近有焦點的控件,然後再單擊按鈕。
我想知道如果有人有更好的方式來實現這個功能比我想出來的。這就是我現在正在做的事情:
public partial class Form1 : Form
{
Control _lastEnteredControl;
private void textBox_Enter(object sender, EventArgs e)
{
_lastEnteredControl = (Control)sender;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Do something here");
_lastEnteredControl.Focus();
}
}
所以基本上我們在這裏是一個類變量,指向最後輸入的控件。表單上的每個文本框都會設置爲在控件接收焦點時觸發textBox_Enter方法。然後,單擊按鈕時,焦點返回到單擊按鈕之前焦點所在的控件。任何人都有更好的解決方案嗎?
您需要遞歸。 – SLaks 2010-05-30 04:00:49