如何获取方法和KeyEventArgs相互交互?

时间:2015-11-17 20:12:40

标签: c#-4.0 methods

我正在努力学习编程以获得乐趣(如果我的术语错误,请提前道歉)并找到了我正在努力解决的问题。我一直试图让一个程序与按下键的键进行交互(例如:你按“空格”,控制台将打印“你好世界”),我无法得到事件和方法进行交互。

我做错了什么;这是我错过的一个简单的步骤,还是我的结构完全出错?

谢谢!

代码

#!/bin/bash
#      ^^^^- Important! /bin/sh doesn't have arrays; bash, ksh, or zsh will work.

# For readability, put common arguments in an array
common_args=(
  --recursive
  --content-encoding "gzip"
  --content-type "text/html"
  --cache-control "max-age=$MAXAGE"
  --exclude "*"
  --profile "$PROFILE"
)

# Record PIDs of the various jobs in an array
pids=( )
aws s3 cp ./test s3://test             --include='*.html' "${common_args[@]}" & pids+=( $! )
aws s3 cp ./test s3://test "$S3BUCKET" --include='*.css'  "${common_args[@]}" & pids+=( $! )

# If either background job failed, exit the script with the same exit status
for pid in "${pids[@]}"; do
  wait "$pid" || exit
done

2 个答案:

答案 0 :(得分:0)

从这开始:

public bool dKey_KeyDown()
{
  var key = Console.ReadKey();
  if (key == ConsoleKey.D)
  {
    return true;
  }
  else
  {
     return false;
  }
}        

答案 1 :(得分:0)

您发布的代码根本不起作用。

首先,你在没有任何参数的情况下调用dKey_KeyDown,但是这个方法的声明需要两个参数object senderKeyEventArgs e ...所以代码甚至不会编译,让单独跑。

其次,您可能已经从 Windows窗体编码的示例代码中复制并粘贴了此内容;在这种情况下,sendere由Forms代码提供,作为其事件处理机制的一部分。我不会在这里详细介绍,但它不会在控制台应用程序中工作..您可以阅读更多相关信息here

为了帮助,这是一个简单的程序,可以做你想要的,它使用Console.ReadKey

using System;

namespace SimpleKey
{
    class Program
    {
        static void Main(string[] args)
        {
            //make a variable to store the input from the user's keypress
            ConsoleKeyInfo input = new ConsoleKeyInfo();
            //keep executing the code inside the block ({..}) until the user presses the Spacebar
            while (input.Key != ConsoleKey.Spacebar)
            {
                Console.WriteLine("Press SpaceBar...");
                input = Console.ReadKey();
            }
            //now they have pressed spacebar, so display the message
            Console.WriteLine("Hello World");
        }
    }
}

最后 - 祝贺决定接受编程!坚持下去,你会很高兴你做到了:)。