Tôi có một vấn đề lạ (có lẽ chỉ để hiểu) tại sao trong một ứng dụng thử nghiệm tập trung rect không được hiển thị cho đến khi tôi bấm phím tab.Tại sao Focus Rectangle không hiển thị cho đến khi nhấn phím Tab?
Tôi muốn hiển thị hộp thoại có hai hộp radio và hai nút. Khi tôi hiển thị hộp thoại, tôi muốn nhìn thấy một tiêu điểm rect xung quanh radiobutton đầu tiên của tôi. (Vì vậy mà người dùng có thể nhìn thấy nơi tập trung được.) Tôi ra lệnh cho các điều khiển và thiết lập các tài sản tabindex 0-4 để chúng được theo thứ tự đúng. (radiobox 1 có tabindex 0, ...)
Khi tôi hiển thị hộp thoại, hộp radio đầu tiên có tiêu điểm, nhưng không có tiêu điểm xoay quanh nó. (Cho đến khi tôi bấm phím tab.)
Tôi đã tạo một dự án winforms hoàn toàn trống (Visual Studio 2010), thêm các điều khiển và khởi động nó. Vì vậy, không có gì đặc biệt cả.
Ai đó có thể cho tôi gợi ý những gì tôi đang làm sai không?
Xin lỗi, đây là đoạn code mẫu của tôi:
Public Class Form1
Private Sub Button1_Click(sender As System.Object, _
e As System.EventArgs) _
Handles Button1.Click
Me.Close()
End Sub
Private Sub Button2_Click(sender As System.Object, _
e As System.EventArgs) _
Handles Button2.Click
Me.Close()
End Sub
Private Sub Form1_Shown(sender As Object, _
e As System.EventArgs) _
Handles Me.Shown
RadioButton1.Focus()
RadioButton1.Select()
SendKeys.SendWait("{TAB}")
SendKeys.SendWait("+{TAB}")
End Sub
End Class
Ahem ... Tôi quên nói, mà tôi đang sử dụng Windows 7 (64 bit) – AlexS
Tough lỗi để sửa chữa, không có gì tôi đã cố gắng làm việc. –
Tôi đã nghiên cứu nhiều hơn một chút và phát hiện ra rằng việc gửi một khóa "Tab" tới biểu mẫu sẽ gọi sự kiện Control.ChangeUICues trong đó cờ UICuesEventArgs.ShowFocus được đặt thành true. (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.changeuicues.aspx) Sau khi sự kiện này được xử lý, tập trung rect được hiển thị. Có ai biết, làm thế nào tôi có thể kích hoạt/gọi sự kiện này trực tiếp? Tôi không tìm thấy bất kỳ tài sản mà tôi có thể thiết lập này thành sự thật ... – AlexS