首页 / 知识
关于c#:覆盖WinForms中的选项卡行为
2023-04-12 08:22:00

Override tab behavior in WinForms我有一个由三个TextBox组成的UserControl。 在表单上,我可以拥有一个或多个或我的UserControl。 我想实现自己的标签行为,因此,如果用户在第二个TextBox中按下Tab键,则仅当第二个TextBox输入了任何内容时,才应移至第三个TextBox。 如果在第二个TextBox中未输入任何内容,则窗体的下一个控件应按照正常的选项卡行为获得焦点。 如果用户没有在第一个或第二个TextBox中输入任何内容,而在presss选项卡上,则在这种特殊情况下,应跳过表单上的控件。 通过使用ProcessDialogKey,我设法使其正常运行,但仍然有一个问题。 我的问题是,是否有一种方法可以检测WinForms控件如何获得焦点,因为我还想知道我的UserControl是否从Tab或Shift-Tab中获得焦点,然后执行奇怪的操作,但是如果用户单击该控件, 不想做任何特别的事情。 通常,我想说重写TAB密钥的标准行为是一个坏主意。也许您可以执行一些操作,例如禁用第3个文本框,直到在第2个文本框中输入有效的条目。 现在,这样说来,我还应客户的要求违反了此规则。我们使Enter键功能像Tab键一样,其中Enter键会将值保存在文本字段中,然后将光标移至下一个字段。 这种奇怪的制表符行为的原因全都与输入过程中的速度有关。得到一些输入真的很好,我没想过禁用文本框,但实际上可以工作。但是,使用Enter键接受输入甚至还没有想到。那会更好。用户可以输入数字,然后按Enter接受输入,下一个可能的文本框将是活动的。这就像吃蛋糕和吃蛋糕一样,速度因数是存在的,因为使用回车键时无需进行任何不必要的制表操作即可到达正确的字段,而使用数字键盘旁边的回车键则使其变得非常流畅。 感谢您的输入! 我认为没有内置的方法可以做到。使用空的EventArgs参数调用所有WinForms焦点事件(GotFocus,LostFocus,Enter,Leave),该参数不会提供任何其他信息。 就个人而言,我将禁用第三个文本框,如Rob Thomas所说。但是,如果您确定要这样做,则设置手动(阅读:hackish)解决方案并不难。按下Tab键后(如果焦点位于第二个文本框上),请在表单内设置一个变量。如果下一个关注的对象是第三个文本框,则您确切地知道它是如何发生的。 与禁用控件相比,尝试使用TabStop更好一些-如果此设置为false,则在制表时将仅跳过控件。 我还建议TextBox的Changed事件是在其他控件上更新TabStop的地方。 我已经使用登录控件完成了与此类似的操作,用户可以在其中输入用户名或电子邮件地址(在单独的字段中)以及他们的密码,而tabStop是我用来完成工作的方式。 我同意DannySmurf的观点。如果应用程序的需求发生变化,那么按Tab键排序可能会给您带来麻烦。 您可以做的另一件事是为用户实现某种向导。 |
最新内容
相关内容
pythonWeb开发和图形用户界面的模
pythonWeb开发和图形用户界面的模块有哪些?,网站,工具,互动,平台,培训,设计,模块,用户界面,图形,框架,关于PythonWeb开发和图形用户界面的模块python写入csv不覆盖原数据
python写入csv不覆盖原数据,数据,培训,信息,文件,后缀,函数,对象,以上,方式,更多,python怎样创建,读写,追加csv文件创建:利用csv包中的writer函python如何获取用户输入
python如何获取用户输入,培训,字符串,整数,类型,文本,文档,用户,小数点,位数,以上,python整数输入#!/usr/bin/python3usr_ip=input("Enteran用户脚本位置 linux (debian etch)
用户脚本位置 linux (debian etch),用户脚本位置 linux (debian etch),脚本,调用,用户,文件系统,User script location linux (debia关于用户界面:您知道GUI编程的任何
关于用户界面:您知道GUI编程的任何模式吗? (不是设计GUI的模式),关于用户界面:您知道GUI编程的任何模式吗? (不是设计GUI的模式),模式,MS Access有没有办法抓住当前的Act
MS Access有没有办法抓住当前的Active Directory用户?,MS Access有没有办法抓住当前的Active Directory用户?,系统,审核,规范,公司,Is关于c#:用户控件属性设计器属性
关于c#:用户控件属性设计器属性,关于c#:用户控件属性设计器属性,可能会,起作用,如何更改,回答,User Control Property Designer Properti关于unix:允许用户设置SSH隧道,但无
关于unix:允许用户设置SSH隧道,但无其他设置,关于unix:允许用户设置SSH隧道,但无其他设置,用户,身份,我想,该用户,Allow user to set up用户界面设计
用户界面设计,用户界面设计,用户界面,我是,转到,使其,User Interface Design创建用户界面时,您要转到哪里? 我是程序员,而不是设计师。如何最好地共享VB6中的可嵌入表单?
如何最好地共享VB6中的可嵌入表单?,如何最好地共享VB6中的可嵌入表单?,表单,对象,方法,我想,How do I best share an embeddable form关于用户界面:图标:没有设计技能的开
关于用户界面:图标:没有设计技能的开发人员如何使他/她的应用程序图标看起来漂亮?,关于用户界面:图标:没有设计技能的开发人员如何使他/关于Windows:用于存储用户可配置应
关于Windows:用于存储用户可配置应用程序设置的注册表与INI文件,关于Windows:用于存储用户可配置应用程序设置的注册表与INI文件,配置