0
我正在处理一个系统,该系统涉及将一组值输入到一系列文本框中,然后单击一个按钮,将每个文本框中的值添加到它们各自的List<>
。 点击按钮后,我使用Focus()
函数将焦点放在文本框组顶部的文本框中(txtHR
)。当使用光标单击按钮时,这可以正常工作。C# - if else声明按钮单击和函数调用
唯一的问题是这样的:
由于有很多文本框的要写入,我做在那里打了输入键将焦点下移文本框列表中选择一个功能(使数据录入更快)。这导致焦点然后在按钮btnSaveData
上,并且击中输入键再次有效地执行按钮点击。 这会将焦点返回到txtHR
,但系统也会接受输入按键并将焦点移到下一个文本框中。
有没有办法解决这个问题?我猜这将涉及一个if/else
声明基于它是否是按钮点击或按键,调用txtHR.Focus()
。
代码两者btnSaveData_Click
和Control_KeyUp
,如下图所示:
private void btnSaveData_Click(object sender, EventArgs e) //To be clicked while clock is running
{ //turn inputted data into outputted data
//take the data in the input boxes and...
updateLists(); //add to respective list
saveReadings(); //append each variable to file
//return cursor to top box in list ready for next data set
txtHR.Focus();
}
private void Control_KeyUP(object sender, KeyEventArgs e) //for selected textboxes and buttons only
{
if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return))
{
this.SelectNextControl((Control)sender, true, true, true, true);
}
}
为什么让Enter键改变焦点? Tab键和Textbox控件的正确顺序应该自动处理 - 不需要模拟Tab键。 – NoChance
是否也挂钩到该事件处理程序的按钮的KeyUp事件? – Chris