-3

我正在 C# 上键入导师简单项目

在此处输入图像描述

请任何人帮助我我有一个问题..我在按钮后面编码

private void btnq_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyValue == 81)
        {
            i = Convert.ToInt16(rtb1.Text.IndexOf('q'));

            if (i == 0)
            {

                rtb1.Text = rtb1.Text.Remove(0, 1);
            }

        }
    }

当我调试项目并从键盘按 Q 键时没有任何反应..但是当我用单击鼠标单击 Q 按钮时((我也为鼠标单击事件编写代码,但它工作))它工作,如果我按下 Q 按钮,现在单击后从键盘然后它工作..为什么当我第一次从键盘按键时它不工作..

我哪里错了?请帮助..我会等待..

4

3 回答 3

1

看起来您的事件处理程序已附加到Q按钮。这意味着只有当您在该按钮获得焦点时按下某个键时才会调用它。

您应该做的是将事件处理程序添加到键盘组框,或类似的东西。

于 2013-01-17T15:34:39.877 回答
0

我添加这个我的问题解决了,但我仍然面临一个问题。当我开始打字时,时钟时间开始和停止Space键。我应该怎么做?它在打字时产生问题。

     private void Form1_KeyPress(object sender, KeyPressEventArgs e)

    {  
       if (btnclock.Text == "Start")
            e.Handled = false ;
         else
        {
         i = Convert.ToInt16(rtb1.Text.IndexOf(e.KeyChar));

            if (i == 0)
            {

                rtb1.Text = rtb1.Text.Remove(0, 1);
            }
            else
                j++;
            textBox1.Text = Convert.ToString((j));
        }
    }
于 2013-01-19T05:16:58.007 回答
0

您正在输入的组件在应用程序启动时没有焦点。

您可以做的是在您的构造函数中设置焦点。

MyControl.Focus();
于 2013-01-17T15:36:01.197 回答