Không có thuộc tính hoặc chức năng được tích hợp để theo dõi kiểm soát tập trung trước đó. Như bạn đã đề cập, bất cứ khi nào nút được nhấp, nó sẽ lấy nét. Nếu bạn muốn theo dõi các hộp văn bản đã được tập trung trước đó, bạn sẽ phải làm điều đó cho mình.
Một cách để đi về việc này sẽ có thêm một biến lớp học cấp mẫu của bạn chứa một tham chiếu đến điều khiển textbox hiện tập trung:
private Control _focusedControl;
Và sau đó trong trường hợp GotFocus
cho mỗi bạn điều khiển hộp, bạn sẽ chỉ cập nhật các biến _focusedControl
với textbox rằng:
private void TextBox_GotFocus(object sender, EventArgs e)
{
_focusedControl = (Control)sender;
}
Bây giờ, bất cứ khi nào một nút được nhấp (lý do tại sao bạn đang sử dụng các sự kiện MouseDown
như trong câu hỏi của bạn thay vì các butto ? Sự kiện Click
n của), bạn có thể sử dụng tài liệu tham khảo để điều khiển textbox trước đó tập trung được lưu trong biến lớp cấp tuy nhiên bạn thích:
private void button1_Click(object sender, EventArgs e)
{
if (_focusedControl != null)
{
//Change the color of the previously-focused textbox
_focusedControl.BackColor = Color.Red;
}
}
Nguồn
2010-12-13 11:09:38
Nút cũng có thể lấy nét thông qua nhấn Tab. – 26071986