控制控件的输入顺序

原创 2005年05月27日 17:19:00

下面是一个控制焦点输入的类

Public Class controlFocus
    Dim Fctrl() As Control '定义一个控件数组,用来记录需要控制输入焦点的控件。
    Dim index As Int32      '控件的索引变量


    Sub New(ByVal cunt As Int32)’构造函数,设定有多少个控件需要控制焦点。
        '参数为控件的个数,cunt>1
        If cunt < 1 Then Throw New Exception '例外
        index = 0  ‘初始化控件索引
        ReDim Fctrl(cunt - 1)    '设置控件的个数,给控件数组赋值。
    End Sub

    Public Sub AddControl(ByVal ctrl As Control)’把控件添加到控件数组中,并用委托来设置控件的keydown事件。
        Fctrl(index) = ctrl
        index += 1
        AddHandler ctrl.KeyDown, AddressOf setControlFocus '设置事件处理程序
    End Sub

    Private Sub setControlFocus(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
        Dim curCtrl As Control
        Dim nextCtrl As Control '下一个接受焦点的控件
        curCtrl = CType(sender, Control) '当前控件
        Dim i As Int32
        Select Case e.KeyCode
            Case Keys.Enter, Keys.Right, Keys.Down ‘当按下的键是回车、向右、向下时响应。
                i = Fctrl.IndexOf(Fctrl, curCtrl) '搜索发送消息的控件
                i = (i + 1) Mod Fctrl.Length '下一个接受焦点的控件的索引
                Fctrl(i).Focus()
            Case Keys.Up, Keys.Left‘当按下的键是向上、向左时响应。
               i = Fctrl.IndexOf(Fctrl, curCtrl) '搜索发送消息的控件
                i = (i - 1) Mod Fctrl.Length '上一个接受焦点的控件的索引
                If i >= 0 Then Fctrl(i).Focus()
        End Select
    End Sub
End Class

应用:

如你要控制一个BTTON和两个TEXTBOX控件的输入焦点。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim cfs As New controlFocus(3)
        cfs.AddControl(TextBox1)
        cfs.AddControl(TextBox2)
        cfs.AddControl(Button1)
    End Sub

-----------------------------------整理者:tl_pear(飘叶寻梦)

如何控制 VC 中控件间的TAB切换顺序

方法一: 在动态创建控件的时候STYLE设置成为WS_CHILD|WS_VISIBLE|WS_TABSTOP,其中WS_TABSTOP 是影响TAB顺序的。 先创建的控件TAB顺序在前。如...

Unity3D 使用“Shift+Tab”和“Tab”键 上下切换 UGUI下 Dropdown和inputfield等控件的控制顺序

1. 常见问题:如果发现这个tab键按下时,跳转2个输入框,在project中,右键此脚本,选择Find References In Scene,肯定某一时刻同时有两个gameobject绑定了此脚本...

如何控制 VC 中控件间的TAB切换顺序

http://blog.csdn.net/gfsuper_2211/archive/2009/05/25/4215752.aspx 方法一: 在动态创建控件的时候STYLE设置成为WS_CHI...
  • flylokj
  • flylokj
  • 2015年07月21日 08:39
  • 755

如何控制 VC 中控件间的TAB切换顺序

方法一: 在动态创建控件的时候STYLE设置成为WS_CHILD|WS_VISIBLE|WS_TABSTOP,其中WS_TABSTOP 是影响TAB顺序的。 先创建的控件TAB顺序在前。如...

DotNetBar.Bar控件Y方向上的顺序控制

控件DevComponents.DotNetBar.Bar是可以有多种用途的,可以作为容器,也可以作为工具条,无论做什么,在Y方向上都是有顺序的,这会影响UI效果。如何控制其顺序呢?...
  • shuaihj
  • shuaihj
  • 2014年11月18日 16:42
  • 3050

控件的TAB顺序

  • 2013年07月30日 17:59
  • 1KB
  • 下载

mfc 改变tab快捷键对控件的顺序

 关于改变Tab顺序的方法有以下几种: 方法一: 在动态创建控件的时候STYLE设置成为WS_CHILD|WS_VISIBLE|WS_TABSTOP,其中WS_TABSTOP是影响TAB顺序...

MFC修改控件的Tab顺序

前面几节鸡啄米为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整。        上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:控制控件的输入顺序
举报原因:
原因补充:

(最多只允许输入30个字)