文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>让控件真正获取输入焦点(winform)

让控件真正获取输入焦点(winform)

时间:2011-05-06  来源:祭天

众所周知 Control.Focus() 可以让控件获得焦点;即使这个控件处于继承自 ScrollableControl 的容器内,并且不在显示的范围内,Focus 方法也会将滚动条滚动至该控件的顶端。

但是有一种情况是例外的,当这个控件是在 TabControl 的 TabPage 里,而 TabControl 当前的 TabPage 不是控件所在的那一个,调用控件的 Focus 方法时,并不会自动选中所在的 TabPage ,所以我写了个方法来手动选中。原理很简单,递归+判断父控件。

上码:

    Public Sub SelectControl(ByVal control As Control)
        Me.SelectControl(Me, control)
    End Sub

    Public Sub SelectControl(ByVal container As Control, ByVal control As Control)
        If (control.Parent Is Nothing OrElse control.Parent Is container) Then
            control.Focus()
            Return
        End If

        Me.SelectControl(container, control.Parent)

        If (TypeOf control.Parent Is TabPage) Then
            DirectCast(control.Parent.Parent, TabControl).SelectedTab = control.Parent
        End If

        If (TypeOf control Is TabPage) Then
            DirectCast(control.Parent, TabControl).SelectedTab = control
            Return
        End If

        control.Focus()
    End Sub
相关阅读 更多 +
排行榜 更多 +
瓢虫少女

瓢虫少女

飞行射击 下载
潜艇鱼雷

潜艇鱼雷

飞行射击 下载
网络掠夺者

网络掠夺者

飞行射击 下载