2011-07-13 40 views
5

Làm cách nào để giữ tiêu điểm trong hộp văn bản sau khi nhấn vào biểu mẫu VBA?Giữ tiêu điểm trên hộp văn bản sau khi nhấn enter

Mã này thêm văn bản vào Hộp danh sách và tôi muốn giữ tiêu điểm trên hộp văn bản để sẵn sàng nhận một mục khác.

Khi tôi bấm vào nút Thêm, nó thêm văn bản vào hộp danh sách và trả về tiêu điểm cho hộp văn bản, howerver khi tôi nhấn vào nó không, thậm chí khó khăn nó sử dụng cùng một mã. Bất kì lời đề nghị nào?

Đây là mã của tôi cho các textbox:

Private Sub TxtOtherAsset_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 

    If KeyCode = 13 Then 
     CmdAddOtherAsset_Click 
    End If 

End Sub 

và đây là mã cho nút của tôi:

Private Sub CmdAddOtherAsset_Click() 

    If TxtOtherAsset.Text <> "" Then 
     ListAddedAssets.AddItem TxtOtherAsset.Text 
     TxtOtherAsset.Text = "" 
    End If 

    TxtOtherAsset.SetFocus 

End Sub 

Tôi đã thử nhiều cách, nhưng tôi không thể trở lại tập trung vào hộp văn bản. Sau khi nhấn enter, tiêu điểm sẽ chuyển sang bước tiếp theo trong TabIndex.

Trả lời

4

Từ đầu của tôi: thử đặt Mã khóa thành 0. Ngoài ra, hãy sử dụng lớp KeyCodeConstants (từ thư viện Core) để xác định giá trị của phím Enter.

Như thế này:

If KeyCode = KeyCodeConstants.vbKeyReturn Then 
    CmdAddOtherAsset_Click 
    KeyCode = 0 
End If 

Tháo dòng bạn đang cố gắng để thiết lập focus trên phụ khác (TxtOtherAsset.SetFocus).

Hy vọng nó phù hợp với bạn. Tôi đã không kiểm tra nó.

+0

Điều này hoạt động như một sự quyến rũ. Thật dễ dàng để thực hiện thay đổi này. Tôi đã không thử nghiệm câu trả lời khác bởi vì cái này trông đơn giản hơn rất nhiều. Va no đa hoạt động. Cảm ơn! – rubenploneda

+0

** 'KeyCode = 0' - dòng này là tuyệt vời! ** 1-2 giờ tôi đã googling, cố gắng giải pháp (thậm chí tuyệt vọng những người, NET hoặc VB6 liên quan), thử nghiệm các sự kiện khác, như tôi bị mất hy vọng trong' KeyDown' ... Không có gì làm việc cho đến khi tôi tìm thấy bài vàng này! – ZygD

1

Bạn có sử dụng phím Enter làm trình kích hoạt để bắt các thay đổi đối với hộp văn bản không? Nếu đúng như vậy, hãy thử sự kiện Sau khi cập nhật. Ngoài ra, hãy xem sự kiện On Exit. Khi tôi nhìn, tôi nhận thấy nó có tham số Hủy. Nếu bạn vẫn muốn nắm bắt phím Enter trong sự kiện Key Down, bạn có thể có thể là sự kiện On Exit để ngăn việc rời khỏi hộp văn bản. Tất nhiên, điều đó có thể có nghĩa là bạn bị mắc kẹt vĩnh viễn và có thể cần phải thiết lập một cách để cho phép thoát.

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