如何在Windows Forms中找出哪个控件具有焦点
发布于 2009-03-18 21:26:05
Form.ActiveControl
可能就是您想要的。
发布于 2012-03-09 20:52:51
请注意,当使用层次结构时,对ActiveControl的单个调用是不够的。想象一下:
Form
TableLayoutPanel
FlowLayoutPanel
TextBox (focused)
(formInstance).ActiveControl
将返回对TableLayoutPanel
的引用,而不是TextBox
所以使用这个(完全公开:改编自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
发布于 2011-04-09 03:10:44
在C#中,我这样做:
if (txtModelPN != this.ActiveControl)
txtModelPN.BackColor = Color.White;
txtModelPN是一个文本框,我在enter和mouseEnter中高亮显示,在Leave,MouseLeave中取消高亮显示。除非它是当前控件,否则我不会将背景设置回白色。
VB的等价物应该是这样的
IF txtModelPN <> Me.ActiveControl Then
txtModelPN.BackColor = Color.White
End If
https://stackoverflow.com/questions/660173
复制相似问题