C#如何实现在同属于一个groupBox下面的上一个textbox中输入回车键后,光标自动移至下一个textbox中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何实现在同属于一个groupBox下面的上一个textbox中输入回车键后,光标自动移至下一个textbox中?相关的知识,希望对你有一定的参考价值。

C#有一个groupBox, 里面有30个textbox控件,现在如何实现我在第1个textbox中输入完内容后,按回车,光标自动移到第2个textbox中,依次类推。
谢谢!我分不多。

参考技术A 把所有的textBox的TabIndex设成1-30,然后KeyPress事件都设成下面这个函数就好了

private void textBox_KeyPress(object sender, KeyEventArgs e)

if (e.KeyValue != 13)//不是回车就退出

return;


int tabindex = ((TextBox)object).TabIndex;//记录当前的textbox的tabindex
foreach(Control c in this.Controls)//查找下一个textbox

if(c.TabIndex == tabindex+1)

c.Focus();//设置焦点


追问

谢谢你!
我按照你的方法,是可以的,就是不知道为什么,很奇怪,30个textbox中每次运行时都有几个在输入完成后按回车键,光标却不自动跳到下一个textbox,大部分还是可以的。我检查了下,没发现程序有异常。

追答

是固定的几个textbox么,检查一下tabindex有没有设置错误的,在keypress里面设个断点跟一下。

追问

textbox的tabindex没错,一直是顺序1-30这么下来的

本回答被提问者采纳
参考技术B 把每个TEXTBOX的顺序值定好,然后在 KEYDOWS事件里面写代码,把回车键变成TAB键,具体的实现。去网上找吧。。很久没用过C#了。。
if(e.KeyChar == (char)13)

SendKeys.Send("Tab");

在keypress事件里面写。TabIndex要设置好,zou051108的方法应该行。。你试试吧。
参考技术C 每个控件都有一个Tabindex属性,你把这个顺序从上到下0-30排列,再写个回车代替tab键就行了啊追问

回车代替tab键怎么实现啊?能说的具体点吗?谢谢喽!

追答

function document_onkeydown()
if( window.event.keyCode == 13 )
window.event.keyCode=9;


行不行都 不待给我们这些人回复一声的!!!???

追问

不好意思,端午节放假,就给耽误了!
对不起啦!
不过你写的这个,我有点看不懂呢,呵呵,刚入门

参考技术D private void textBox1_KeyDown(object sender, KeyEventArgs e)

if (e.KeyValue == 13)

textbox2.Focus();

Git笔记如何在同主机同账户下实现多个gitlab帐号管理各自的remote repo

我们可能会遇到下面的场景:
1)多人共用同一台Linux开发机,该开发机只有一个共用的work帐号,很多人都用这个帐号登录主机进行日常开发;
2)该work帐号下统一安装了git客户端供多人使用;
3)项目采用gitlab进行云端代码托管;
4)每个开发人员均使用自己的gitlab帐号进行版本管理。

在上面的场景下,需要解决一个问题:
在同主机且共用工作帐号的情况下,如何使用各自的gitlab帐号提交自己负责的代码?

下面的步骤可以解决这个问题。

1. 为每个人生成各自的ssh key

例如,假设我以slvher@gmail.com作为gitlab的注册邮箱,则下面的步骤可为这个gitlab帐号生成ssh key:

$ cd ~/.ssh && mkdir git
$ ssh-keygen -t rsa -C "slvher@gmail.com" ## 注意:需要指定保存ssh key的文件为~/.ssh/git/id_rsa.slvher
$ cat git/id_rsa.slvher.pub  
将cat出来的ssh key的内容(不包括"slvher@gmail.com")通过gitlab web管理界面添加到ssh key配置项中,这里不赘述。

假如在同机器同帐号下还有一个名叫”sky”的人,他也按照上述步骤用他的gitlab注册email生成了自己的ssh key保存至~/.ssh/git/id_rsa.sky,且在gitlab web界面上完成配置。

此时,面临的问题是:
1)如果在~/.gitconfig的[user] section中配置全局的user.email / user.name,则无法满足每人用各自的帐号进行版本管理的需求,显然不可行;
2)如果每个工程师负责的项目用各自的帐号进行提交(即在每个项目的作用域内配置user.email / user.name),那么,git push至remote时,机器如何选择该项目对应的ssh key进行权限验证?

这个问题可以通过在~.ssh/config文件中配置gitlab.com的host alias来解决。

2. 用~/.ssh/config文件管理多个ssh key

$ cd ~/.ssh
$ vi config 

针对用户slvher和tom的gitlab ssh key,配置如下内容:

Host gitlab.slvher
    Hostname gitlab.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/git/id_rsa.slvher

Host gitlab.sky
    Hostname gitlab.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/git/id_rsa.sky

上述配置中,Host是Hostname的别名(alias),比如,如果远程的git repo地址为git@gitlab.com:slvher/multi-user.git,则在本地机器通过git@gitlab.slvher:slvher/multi-user.git也能访问到同一个repository,因为我们配置了gitlab.slvher是gitlab.com的别名。当然,在alias与real host互通之前,需要事先做些工作,下面进行简述。

3. 如何将remote repo url中的domain设置为其别名

两个办法:
1)如果本地还没有工程,则通过git clone项目时,可以用host alias的url,比如本来应该是:

$ git clone git@gitlab.com:slvher/multi-user.git

则其别名形式为:

$ git clone git@gitlab.slvher:slvher/multi-user.git

由于git@会走ssh协议,所以~/.ssh/config中的配置使得机器可以识别gitlab.slvher这个别名。

2)如果本地工程已经与remote repo相关联,则可以通过git remote set-url来重新设置与本地工程关联的remote repo url。下面的步骤供参考。

$ git remote -v  ## 显示当前与本地项目关联的remote repo url

输出如下:
origin git@gitlab.com:slvher/multi-user.git (fetch)
origin git@gitlab.com:slvher/multi-user.git (push)

$ git remote set-url origin git@gitlab.slvher:slvher/multi-user.git 
$ git remote -v

此时,输出如下:
origin git@gitlab.slvher:slvher/multi-user.git (fetch)
origin git@gitlab.slvher:slvher/multi-user.git (push)

采用上述方法将gitlab host的别名设置成功后,只要为每个工程配置好owner的user.email和user.name,同主机同帐号下的多个开发者就可以用各自的gitlab帐号管理各自负责的项目了。

上述方法同样适用于github。

参考资料:

[1] One command github accounts switch

=================== EOF =================

以上是关于C#如何实现在同属于一个groupBox下面的上一个textbox中输入回车键后,光标自动移至下一个textbox中?的主要内容,如果未能解决你的问题,请参考以下文章

如图:c# winform label放在button上,button在groupbox里,如何隐藏N多个label?

c# winform groupbox上动态生成的控件,如何让控件随着分辨率变化而自动调整位置和大小

C# 侦听 groupbox 中的复选框更改

c# winform groupbox上动态生成的控件,如何让控件随着分辨率变化而自动调整位置和大小

将许多单选按钮添加到 groupbox C#

c# 中如何在GroupBox控件中动态添加与移除控件