textbox1按下回车光标跳转到textbox2
这是一个很菜的问题,本人上网找了很多资料,但都没找到一个真正解决的方法。感觉KEYPRESS没被触发一样。TEXTBOX1写好后,按回车,KEYPRESS语句根本没有执行。
请教一下大家,这是什么原因。
--------------------编程问答-------------------- 有个地方可以设置的,默认是Tab但是你可以设置成Enter的时候光标移动! --------------------编程问答-------------------- me.keypreview = true --------------------编程问答-------------------- 在哪设置啊?我没找到。 --------------------编程问答-------------------- 我用了me.keypreview = true 这个问题,我早想到了,但还是没用。我靠。 --------------------编程问答--------------------
窗体属性。 --------------------编程问答-------------------- keypress的对象选对了没?Form可以有keypress,textbox可以有keypress,其他好多控件都可以响应按键事件。我刚才试了一下,新建一个winform工程,在界面上拖一个textbox,然后在textbox的keypress事件中写如下代码:
MessageBox.Show(e.ToString());
运行后事件能正确触发。 --------------------编程问答-------------------- 设置Form的KeyPreview = true;
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(e.KeyChar==(char)13)
textBox2.Focus();
}
或
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{TAB}");
}
}
--------------------编程问答-------------------- 其实,我本意就是想,输入用户名后,直接按回车键,光标就能直接到输入密码的框子里了,这样省的用鼠标点了,节约时间,但为这问题,我上网找了无数的代码,都没反应。我感觉这不是一个难题啊,肯定哪里出错了。 --------------------编程问答--------------------
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)--------------------编程问答-------------------- 那用 keydown 事件 试试
{
if (e.KeyChar == 13)
{
this.textBox2.Focus();
}
}
--------------------编程问答-------------------- namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
this.textBox2.Focus();
}
}
}
}
是不是这样啊,我重新做个FORM,然后搞了2个TEXTBOX,然后把Form的KeyPreview = true;
然后我直接把上楼的代码往里面一贴,运行了一下,我输完第一个TEXTBOX,按下回车,一点反应都没有,是不是我代码贴错位置了?? --------------------编程问答-------------------- private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
..............
}
} --------------------编程问答-------------------- 楼上帮助我的人,今天非常感谢大家了,我刚刚研究了一下,终于发现问题出哪了,我一开始就以为是代码出了问题,但我忘记了一个最重要的地方,就是点击窗口FORM,右下角个有属性区,点击一个小闪电图标,我选中KEYPRESS,再下拉选择了刚刚写的事件textBox1_KeyPress,然后再运行程序,就OK了。看来,我的基础很差,得好好学习。 --------------------编程问答-------------------- 。。。
代码经过本人检测没问题!
我还以为你键盘坏了!
--------------------编程问答-------------------- 非常感谢楼主,找了半天都不知道什么原因,原来是那个小闪电!! --------------------编程问答-------------------- private void txtAddress_KeyPress(object sender, KeyPressEventArgs e)
{
this.txtPhoneNum.Focus();
} --------------------编程问答--------------------
private void txtAddress_KeyPress(object sender, KeyPressEventArgs e)--------------------编程问答-------------------- 这需求.. 一般用惯电脑的人都是TAB键换 然后回车键输入 --------------------编程问答-------------------- 用Keydown事件吧
{
this.txtPhoneNum.Focus();
}
判断一下
if(e.KeyCode == 13)
SendKeys.SendWait("+{TAB}"); --------------------编程问答-------------------- private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == (char)13)
{
SendKeys.SendWait("+{TAB}");
}
}
或
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
SendKeys.SendWait("+{TAB}");
}
}
这两种方法都可以 --------------------编程问答--------------------
--------------------编程问答-------------------- EnterToNextControl =true --------------------编程问答-------------------- +1
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
textBox2.Focus();
}
}
补充:.NET技术 , C#