日期:2014-05-18  浏览次数:20986 次

C# winform 返回上一个文本框
一个窗体上 有TextBox ,button,label,gridview 。如果用户 在一个文本框获取焦点时按了 上键 就让这个文本框之前的那个文本框获取输入焦点。如何做?

------解决方案--------------------
1.可以考虑通过tab索引来记录,在TextBox的KeyDown事件中,返回上一个TabIndex

2.自己建立集合来记录TextBox的点击顺序,同样在KeyDown事件中,返回上一个TextBox,并从集合中删除当前TextBox的记录
------解决方案--------------------

KeyDown
int tabIndex = ((TextBox)sender).TabIndex;
foreach(Control cl in this.Controls)
{
if(cl.TabIndex == tabIndex - 1)
{
cl.Focus();
break;
}
}
------解决方案--------------------
选中文本框。。它有个Leave事件。。在里面编写另外一个控件获取焦点的代码:
C# code
private void txtData_Leave(object sender, EventArgs e)
        {
            textBox1.Focus();
        }

------解决方案--------------------
探讨

而是要获取上一个文本框,上一个控件不一定就是文本框