c# - 如何在 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();
}
解决方案
我会建议结合使用 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 会给你字符本身,如果你需要进一步转换,你可以很容易地检查它是数字还是字母。
希望能帮助到你。
推荐阅读
- c# - 设置 ironpython:找不到模块
- android - 当我输入相同的用户名时,它给了我“错误的输入”?
- r - PCoA 函数 pcoa 提取向量;解释的方差百分比
- authentication - SignalR 核心 JWT 声明
- timestamp - 删除 db2 时间戳微秒
- matlab - 在 MATLAB 上使用 zsh 通过别名运行命令行
- ionic-framework - 离子后退按钮不会动态更改文本
- apache-kafka - 我们可以在 Kafka 中有多少个分区?
- ios - 与视图控制器内的自定义 UIView 交互
- php - 如何在 PHP 中将 fsockopen(或兼容)与 SOCKS 代理一起使用?