我正在尝试提出一个代码,该代码将根据在只读文本框中按下的键向其他文本框添加或减去 1。我的问题是我需要区分数字键盘 #(0-9) 和 qwerty 键盘上方的 #s。当我在 NumLock ON 的情况下使用下面的代码时,小键盘数字的作用与其他数字完全相同(减去 1)。当 NumLock 关闭时,它什么也不做。我希望它在我按小键盘 # 时加 1,在我按非小键盘 # 时减 1。我试过用谷歌搜索答案,但我什么也想不出来。
谢谢你的帮助。
void txtTotal_KeyPress(object sender, KeyPressEventArgs e)//when a key is pressed total text box, depending on key add or subtract 1 to another test box (txtTotal is set to read only)
{
switch (e.KeyChar)
{
case (char)96://numpad 0
addNRBC();
break;
case (char)48://keyboard 0
subtractNRBC();
break;
}
}
public void addNRBC()
{
num1 = Convert.ToInt32(txtNRBC.Text);
txtNRBC.Text = Convert.ToString(num1 + 1);//adds 1 to NRBCs field
Total();
}
public void subtractNRBC()
{
num1 = Convert.ToInt32(txtNRBC.Text);
txtNRBC.Text = Convert.ToString(num1 - 1);//subtract 1
Total();
}
public void Total()//totals all textboxes except NRBCs
{
total = int.Parse(txtSegs.Text) + int.Parse(txtLymphs.Text) + int.Parse(txtMonos.Text) + int.Parse(txtBands.Text) + int.Parse(txtEos.Text) + int.Parse(txtBasos.Text) + int.Parse(txtMetas.Text)
+ int.Parse(txtMyelos.Text) + int.Parse(txtPros.Text) + int.Parse(txtBlasts.Text) + int.Parse(txtPlasmas.Text);
txtTotal.Text = Convert.ToString(total);
}