Làm cách nào để tìm ra kiểm soát nào tập trung vào Windows Forms?Làm cách nào để tìm ra điều khiển nào tập trung vào .NET Windows Forms?
Trả lời
Form.ActiveControl
có thể là những gì bạn muốn.
cái gì đó dọc những dòng này:
Protected Function GetFocusControl() As Control
Dim focusControl As Control = Nothing
' Use this to get the Focused Control:
Dim focusHandle As IntPtr = GetFocus()
If IntPtr.Zero.Equals(focusHandle) Then
focusControl = Control.FromHandle(focusHandle)
End If
' Note that it returns NOTHING if there is not a .NET control with focus
Return focusControl
End Function
Tôi nghĩ rằng mã này đến từ windowsclient.net, nhưng nó được một lúc như vậy ...
Hãy để tôi downvote câu trả lời cho đến khi bạn hoàn thành nó. Cuộc gọi của 'GetFocus()' bị treo ở đâu cả và câu trả lời trong biểu mẫu này sẽ không hoạt động. – miroxlav
Trong C# Tôi làm điều này:
if (txtModelPN != this.ActiveControl)
txtModelPN.BackColor = Color.White;
txtModelPN là một hộp văn bản mà tôi đang làm nổi bật trên nhập và chuộtNhập và bỏ đánh dấu trên Rời, MouseLeave. Ngoại trừ nếu nó là điều khiển hiện tại tôi không đặt nền trở lại màu trắng.
VB tương đương sẽ là như thế này
IF txtModelPN <> Me.ActiveControl Then
txtModelPN.BackColor = Color.White
End If
Lưu ý rằng một cuộc gọi duy nhất để ActiveControl là không đủ khi phân cấp được sử dụng. Hãy tưởng tượng:
Form
TableLayoutPanel
FlowLayoutPanel
TextBox (focused)
(formInstance).ActiveControl
sẽ trở lại tham chiếu đến TableLayoutPanel
, không phải là TextBox
Vì vậy, sử dụng này (đầy đủ tiết lộ: chuyển thể từ this C# answer)
Function FindFocussedControl(ByVal ctr As Control) As Control
Dim container As ContainerControl = TryCast(ctr, ContainerControl)
Do While (container IsNot Nothing)
ctr = container.ActiveControl
container = TryCast(ctr, ContainerControl)
Loop
Return ctr
End Function
Bạn có thể sử dụng để tìm theo Tên kiểm soát .
If DataGridView1.Name = Me.ActiveControl.Name Then
TextBox1.Visible = True
Else
TextBox1.Visible = False
End If
Bạn có thể sử dụng tính thích hợp ActiveControl của biểu mẫu và có thể sử dụng điều khiển đó.
me.ActiveControl
Hoặc
Form.ActiveControl
- 1. Tìm ra điều khiển nào tập trung
- 2. Làm cách nào để chỉ định điều khiển nào cần được tập trung khi biểu mẫu mở ra?
- 3. Điều khiển WYSIWYG Markdown cho Windows Forms?
- 4. 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ổ
- 5. Làm cách nào để đặt chiều rộng TAB trong điều khiển Hộp văn bản Windows Forms?
- 6. Làm cách nào để đặt tiêu điểm thành điều khiển trong ứng dụng Windows Forms?
- 7. Tìm điều khiển theo tên từ các điều khiển của Windows Forms
- 8. Bật cuộn trên bảng điều khiển Microsoft cho Windows Forms
- 9. Làm thế nào để xác định điều khiển nào trên biểu mẫu đã tập trung?
- 10. Làm cách nào để tìm hiểu vị trí tập trung trong ứng dụng WPF của tôi?
- 11. Cách đặt điều khiển nào tập trung vào Ứng dụng bắt đầu
- 12. Điều khiển Windows Forms phức tạp .Net 2.0: bắt đầu từ đâu?
- 13. Làm cách nào để tập trung vào biểu mẫu?
- 14. Làm cách nào để tập trung vào JFrame?
- 15. Điều khiển bảng điều khiển tự động gắn cho Windows Forms
- 16. Làm cách nào để tạo các hộp kiểm tri-state với điều khiển TreeView trong .NET?
- 17. jquery làm thế nào để tập trung đầu vào tập trung vào kiểm soát
- 18. Hành vi lạ của điều khiển hộp kiểm Windows Forms
- 19. Làm cách nào để tập trung div?
- 20. Làm cách nào để xuất thông tin vào bàn điều khiển trong tập lệnh python GIMP?
- 21. Làm cách nào để hiển thị ứng dụng Windows Forms .NET dưới dạng biểu tượng khay?
- 22. Làm cách nào để tìm hiểu yếu tố GWT nào đã tập trung?
- 23. Làm thế nào để mở một cửa sổ mới trong Windows Forms in .NET?
- 24. Bộ sưu tập ràng buộc vào DataGridView trong Windows Forms
- 25. Làm thế nào để tập trung vào JPopupMenu
- 26. InitializeComponent ở đâu và khi nào được gọi trong điều khiển Windows Forms trong VB.NET?
- 27. .NET SplitContainer bằng C# Windows Forms
- 28. Làm thế nào để tìm ra khi nào điều khiển được hiển thị cho người dùng?
- 29. Làm cách nào để xác định xem chương trình .NET Windows Forms của tôi đang chạy trên màn hình nào?
- 30. Cách kiểm tra xem hai điều khiển có bị chồng chéo trong Windows Forms
Chỉ muốn chỉ ra rằng nếu bạn đã thay đổi một cái gì đó (thiết lập thuộc tính .text ví dụ) nó sẽ trở lại sự kiểm soát mà bạn sử dụng lần cuối. bao gồm thiết lập những thứ như .Text không phải lúc nào cũng là điều khiển có tiêu điểm – PsychoData