2010-10-30 31 views
23

Trong ứng dụng Windows Forms, khi tôi có viết mã để đặt tiêu điểm thành điều khiển trong khi ứng dụng được khởi chạy và sau đó sau khi tôi gọi một hàm không?Làm cách nào để đặt tiêu điểm thành điều khiển trong ứng dụng Windows Forms?

Ví dụ: nếu tôi có DropDownList, TextBox và bốn nút và tôi muốn Focus được đặt thành DropDownList, nơi tôi có phải viết mã của mình không?

Để đặt tiêu điểm cho một điều khiển cụ thể khi khởi chạy ứng dụng, tôi có thể đặt chỉ mục tab cho DropDown đó (với giá trị nhỏ nhất, dưới thuộc tính TabStop giả định được đặt thành True).

Bây giờ, nếu người dùng hoàn thành một hoạt động (nói, bất kỳ Bấm nút Sự kiện) và sau đó tôi cập nhật thả xuống và sau đó nếu tôi muốn để thiết lập focus ... Tôi có thể làm điều đó như

MyDropDownList.Focus() 

hỎI

NB: câu hỏi đặt ra là hơn về nơi, không cách?

+0

Có, trong trình xử lý sự kiện nhấp chuột. Còn gì nữa? –

+0

@Hans Passant: Đó là thời gian tiếp theo (sau khi người dùng thao tác). Tôi có thể viết nó trong Trình xử lý sự kiện (s) hoặc một hàm gọi là UpdateDropDownList() mà tôi đang gọi nội bộ trong Trình xử lý sự kiện nhấp chuột. Nhưng đối với tải ban đầu, tôi viết nó ở đâu? Trong InitializeComponent() hoặc sau khi nó được gọi là? – Kanini

Trả lời

52

Đến nay giải pháp đơn giản nhất là đặt thuộc tính TabIndex chính xác để điều khiển 'MyDropDownList' của bạn có chỉ mục thấp nhất. Cách tiếp cận tiếp theo là làm điều đó trong hàm tạo. Nhưng bạn phải sử dụng Select(), phương thức Focus() không thể hoạt động được vì điều khiển không hiển thị cho đến sau này.

Public Sub New() 
    InitializeComponent() 
    MyDropDownList.Select() 
End Sub 

Cũng hoạt động trong sự kiện Tải. Focus() bắt đầu làm việc trong sự kiện được hiển thị.

+0

+1 bởi vì tôi cần phải đặt nó trong sự kiện Tải để làm cho nó hoạt động trong ứng dụng C# của tôi! – Hybrid

+0

Tôi thực sự đánh giá cao việc sử dụng .Select(). Đó là chính xác những gì tôi cần. – jeromeyers

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