2013-06-04 37 views
9

Tôi đang cố gắng tập trung điều khiển hộp văn bản "tìm kiếm" trong ứng dụng biểu mẫu cửa sổ của tôi. Hộp văn bản này nằm bên trong một điều khiển người dùng, bên trong bảng điều khiển bên trong một biểu mẫu cửa sổ (nếu nó quan trọng). tôi đã cố gắng 3 phương pháp mà tôi có thể tìm thấy:Làm cách nào để tập trung vào điều khiển trong các hình thức cửa sổ

// 1 
this.ActiveControl = myTextBox; 

// 2 
myTextBox.Focus(); 

// 3 
myTextBox.Select(); 

Cả hai đều không có vẻ làm việc. Ý tôi là ví dụ khi tôi thử cái đầu tiên, điều khiển hoạt động thực sự được đặt thành myTextBox, nhưng khi tôi cố gắng viết một cái gì đó trên bàn phím, textbox không chấp nhận nó và trước tiên tôi phải nhấp vào bên trong hộp văn bản để lấy tiêu điểm. Điều này cũng tương tự với tất cả các phương pháp. Tôi có thiếu gì đó không?

Trả lời

16

Ok, cuối cùng tìm thấy câu trả lời:

Như tôi đã nói textbox của tôi là bên trong điều khiển người dùng mà là bên trong bảng điều khiển mà là bên trong một biểu mẫu. Khi tôi cần điều khiển người dùng, tôi thêm nó vào bảng điều khiển. Để có được tập trung vào textbox của tôi, tôi phải trước hết là tập trung điều khiển người dùng của tôi vì vậy một cái gì đó như thế này: Trong Mẫu đầu của tôi:

panel.Controls.Add(myUserControl); 
myUserControl.Focus(); 

và sau đó trong điều khiển người dùng của tôi:

myTextBox.Select(); 

Lưu ý rằng nếu tôi sử dụng: myTextBox.Focus() nó sẽ không hoạt động (không biết tại sao). Ngoài ra nếu tôi sử dụng myUserControl.Select() thay vì myUserControl.Focus() nó sẽ không hoạt động hoặc.

Điều này có vẻ là sự kết hợp duy nhất hoạt động.

Các vấn đề liên quan