首页 > 解决方案 > 如何在 C# 中将按下的键转换为 int

问题描述

我想将按下的键转换为 int 并放入一个int变量。我正在尝试按下键并转换为 int 以使用它来更改文本或将该文本设置为它。

例如,在一个textbox按键事件中,我尝试了这个,但通常它会得到 D1 或 D2 或者......当我按下数字键并且不工作时:

private void txtNumberOfPositions_KeyDown(object sender, KeyEventArgs e)
{
      char PressedKeyForSettingNumberOfPositionsChar = (char)e.KeyCode;

      int PressedKeyForSettingNumberOfPositionsInt = Convert.ToInt32(PressedKeyForSettingNumberOfPositionsChar);

      if (PressedKeyForSettingNumberOfPositionsInt >= 0 && PressedKeyForSettingNumberOfPositionsInt <= 10)
         txtNumberOfPositions.Text = PressedKeyForSettingNumberOfPositionsInt.ToString();
}

标签: c#eventscharintkeydown

解决方案


我会建议结合使用 KeyDown 和 KeyPress 事件。对于所有简单的键(不包括 Ctrl、Shift 等),KeyPress 事件将为您提供字符本身,然后无需转换它。例子:

private void txInterval_KeyPress(object sender, KeyPressEventArgs e)
        {
            char c = e.KeyChar;
        }

例如,当您按数字 2 而不是 D2 时,这里 e.KeyChar 会给您 2。您可以使用 KeyDown 来记录 Ctrl、Alt 和 Shift 等键。例如,当您按下数字或字母时,应用程序将同时调用 KeyDown 和 KeyPress。它只是使您的代码非常简单,而不是对 D0、D1 ....D9 进行 IF 检查。而且因为 KeyChar 会给你字符本身,如果你需要进一步转换,你可以很容易地检查它是数字还是字母。

希望能帮助到你。


推荐阅读