控制控件的输入顺序

原创 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(飘叶寻梦)

C# 控制控件的显示顺序

在C#中,可以让控件在最前端显示,也可以在最后端显示,他们的显示顺序是可以控制的,这就涉及到2个函数方法             BringToFront();//将控件放置所有控件最前端      ...
  • taoerit
  • taoerit
  • 2016年10月24日 11:32
  • 474

html页面中改变TAB键的切换顺序

html中的tabIndex属性可以设置键盘中的TAB键在控件中的移动顺序,即焦点的顺序。     把控件的tabIndex属性设成1到32767的一个值,就可以把这个控件加入到TAB键的序列中。...
  • lorkoy
  • lorkoy
  • 2013年12月19日 17:32
  • 2506

android 多控件顺序翻转动画设计实现

android 翻转动画实现 自己的前几篇文章基本都是简单的把动画实现,能够看看效果。这次带来的翻转动画自然少不了的显示动画效果。 但这次多了实用性、可扩展性的考虑,把翻转动画不仅仅是针对个别iew...
  • farmer_cc
  • farmer_cc
  • 2014年01月22日 00:13
  • 7797

C#写出的软件使用Tab按钮时的选择控件的顺序

C#写的程序在控件的选择顺序上的一个小技巧 例如,下面这个小程序在窗体载入时自动聚焦在“密码”输入框,输入完密码按一次Tab键后却跳到了“退出按钮上”。 那么我们如何调整这些顺序呢,下面是...
  • tingzhiyi
  • tingzhiyi
  • 2015年12月13日 15:51
  • 1712

C#控件控制输入文本长度

C#在控制控件输入文本的长度时要注意两个问题: 1、传递的事件参数类型要是 KeyPressEventArgs; 2、对退格键(backspace)做例外处理,不然在输入到最大程度时无法使用退格键...
  • dou3516
  • dou3516
  • 2017年01月02日 15:48
  • 557

Qt ui控件代码先后顺序的tips

MyMainWindow::MyMainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MyMainWindow) ...
  • qq_26654257
  • qq_26654257
  • 2017年11月27日 01:53
  • 86

vc控制控件TAB顺序

在资源视图里按CTRL+D 会显示当前tab顺序,如果需要调整的话,按自己所需顺序重点一遍即可。...
  • mail_cm
  • mail_cm
  • 2012年07月31日 15:43
  • 549

在VC++中怎样改变控件间的TAB切换顺序?

在编辑界面按下ctrl+D键,就会出现所有控件的Tab键顺序,按照自己想要的顺序依次点击控件,就可以重新安排顺序。...
  • qinghezhen
  • qinghezhen
  • 2014年01月17日 20:07
  • 1086

如何控制线程执行的顺序?

如何控制线程执行的顺序? 要解决如上的题目,得理解题意的重心在哪。关键词:线程与顺序。 先来一段多线程执行的代码。 public class Test { public static...
  • u011519624
  • u011519624
  • 2018年01月11日 22:56
  • 66

项目过程中,有c++控件,层级问题的解决

首先要明白,同类的层级是可以通过z-index来控制;但非同类之间的层级的关系: c++控件>div; 但是在使用过程中,如何合理控制各个之间的关系呢? 如我曾经碰到过一个问题;是控件放在弹出框...
  • katara1109
  • katara1109
  • 2015年10月13日 09:25
  • 439
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:控制控件的输入顺序
举报原因:
原因补充:

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