我的winform程序中有textbox1~~textbox26 26个textbox,我想做成像excel那样的用上下键控制移动代码如下:
private void textbox11_KeyUp(object sender, KeyEventArgs e)
{
switch (e.KeyValue.ToString())
{
case "38": //按up键移动到上一单元格
textbox10.Focus();
textbox10.SelectAll();
break;
case "40": //按down键移动到下一单元格
textbox12.Focus();
textbox12.SelectAll();
break;
ArrayList al = new ArrayList();
}
}
现在有个问题,我怎么才能不用去写26个keyup事件就能解决这个问题。
private void textbox11_KeyUp(object sender, KeyEventArgs e)
{
switch (e.KeyValue.ToString())
{
case "38": //按up键移动到上一单元格
textbox10.Focus();
textbox10.SelectAll();
break;
case "40": //按down键移动到下一单元格
textbox12.Focus();
textbox12.SelectAll();
break;
ArrayList al = new ArrayList();
}
}
现在有个问题,我怎么才能不用去写26个keyup事件就能解决这个问题。
解决方案 »
- C# 与c++用法太多不同
- 急,急,oracle 修改多列语句怎么写???
- GUI问题
- 急!!!请问偶的数据是float型的,可只能显示7位,把后面的小数给截掉了;如换成double型,后面小数又一大堆,怎么解决只显示两个小数呢
- C#打印时有没有办法把tableLayoutPanel中的textbox,label一起打印
- C# TableAdapter设计器,自定义生成带有参数的SQL查询出错
- C#中怎样象资源管理器那样焦点在listview,但是treeview中还是保留焦点
- 怎么写判断用于确定或取消的消息框?
- 求一个SQL语句(SQLSERVER的),急呀...
- 怎么调用外部程序啊
- C#中对象、实例,对象实例有什么区别?
- NET无刷新提交
if (txt.name=="??")
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
{
TextBox t = (TextBox)sender; int index = Convert.ToInt32(t.Name.Substring(7));
if (e.KeyCode == Keys.Up)
{
index--;
if (index == 0) index = 26;
}
if (e.KeyCode == Keys.Down)
{
index++;
if (index > 26) index = 0;
} TextBox nextText = (TextBox)this.Controls["TextBox" + index.ToString()];
nextText.Focus();
nextText.SelectAll(); }将所有的TextBox 的KeyUp事件关联到textBox_KeyUp,且所有的TextBox 的name是TextBox1, TextBox2 ..... TextBox26
如:this.textBox1.KeyDown+=new KeyEventHandler(textBox1_KeyDown);
...
this.textBox26.KeyDown+=new KeyEventHandler(textBox1_KeyDown);
这样可以避免写26个实现方法。