c# - 监控击键

标签 c# winforms events keystroke

我是 C# 初学者,正在制作一个计算器。但我想禁用“GO!”当 textbox1 中没有输入数字时按钮,一旦用户在其中输入数字,“开始!”按钮再次启用...如何在 C# 中执行此操作?我尝试过这样的 KeyDown 和 KeyPress 事件,但从未奏效

private void Form1_Load(object sender, EventArgs e)
    {

            button15.Enabled = false;
         button16.Enabled = false;     

    }


 private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyEventArgs e)
    {

       if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
        {
            button15.Enabled = true;
            button16.Enabled = true;

        }
        else
        {
            button15.Enabled = false;
            button16.Enabled = false;
        }

    } 

那么请问该怎么做呢? 提前致谢。

最佳答案

你的想法很好,但还有更好的方法。只需检测文本框的内容何时更改。当内容改变时,检查内容是否为空或不为空。如果内容为空,则禁用该按钮,否则启用它。

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.textchanged.aspx

此外,将控件的名称更改为默认名称以外的名称对您来说是个好主意。 “button15”什么也没告诉代码的读者,“goButton”却告诉了读者。

关于c# - 监控击键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2392972/

相关文章:

c# - For循环中的日期时间

android - onItemSelected 事件仅由用户交互触发

javascript - ReactJS 中的 setState 函数不是设置状态。如何克服这个问题呢?

c# - 为什么在 Windows 服务停止时调用 base.OnStop()?

c# - 如何在 c#/winforms 中将图像裁剪成圆形?

c# - 以编程方式重新启动 IIS

c# - 组合框按键事件处理程序

javascript - node.js 在一定时间后发出事件

c# - 使用傅立叶级数或其他算法通过给定值重建函数

c# - 查找哪个事件被触发