所以我在 c#项目(winforms)中工作,所以我的项目中有很多文本框,当我按下 up 时,我想要一个特定的文本框让我说textbox1
增加他的价值,我已经使用了事件OnKeyUp
,但问题是我有很多文本框,所以我必须点击这个TextBox1
开始操作,所以请如果有人有任何想法,我将非常感激。
这是我的代码:
//Action speed up
private void TxBoxKeyUp_KeyUp(object sender, KeyEventArgs e)
{
TxBoxKeyUp.Text = (speed+=5).ToString();
LbSpeed.Text = TxBoxKeyUp.Text;
}
答案 0 :(得分:1)
如果要为表单上的每个控件处理KeyUp事件,则可以将Form.KeyPreview属性设置为True。 然后为表单添加KeyUp事件处理程序,并在此事件中更新文本框的内容
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
TxBoxKeyUp.Text = (speed+=5).ToString();
LbSpeed.Text = TxBoxKeyUp.Text;
}
如果您的目的是捕获每个KeyUp,无论控件是事件触发时的聚焦控件,这都可以正常工作。如果只有当控件聚焦的是TextBox时才需要获取键盘,那么解决方案就更复杂了。您需要method like the one explained in this question来获取当前的焦点控件,然后检查它是否是文本框。
答案 1 :(得分:0)
您可以将文本框定义为数组,然后使用委托。
假设你有一个keyup事件 TxBoxKeyUp_KeyUp 和一组文本框 txtarr
foreach (TextBox txt in txtarr)
txt.KeyUp += new KeyEventHandler(TxBoxKeyUp_KeyUp);
因此,您可以使用单个函数处理所有文本框keyup事件。