Console.Write("请输入:");
                    ConsoleKeyInfo con_Exit = Console.ReadKey(true);
                    if (con_Exit.Key == ConsoleKey.Y)
                    {
                        Console.Write(con_Exit.Key.ToString());
                        Console.ReadLine();
                        Environment.Exit(0);
                    }
                    else if (con_Exit.Key == ConsoleKey.N)
                    {
                        Console.Write(con_Exit.Key.ToString());
                        Console.ReadLine();
                    }
                    else if (con_Exit.Key == ConsoleKey.Backspace)
                    {                    }当我输入了Y的时候我想删除输入N 按 Backspace的时候不能删除字符了代码修改为:
                    Console.Write("请输入:");
                    string con_Exit = Console.ReadLine();
                    if (con_Exit=="Y")
                    {
                        Environment.Exit(0);
                    }
这样就可以删除了  为什么呢? ConsoleKeyInfo con_Exit = Console.ReadKey(true);去掉这个就可以`
Why?还有当我用
                    Console.Write("请输入:");
                    ConsoleKeyInfo con_Exit = Console.ReadKey(true);
                    if (con_Exit.Key == ConsoleKey.Y)
                    {
                        Console.Write(con_Exit.Key.ToString());
                        Console.ReadLine();
                        Environment.Exit(0);
                    }
                    else if (con_Exit.Key == ConsoleKey.N)
                    {
                        Console.Write(con_Exit.Key.ToString());
                        Console.ReadLine();
                    }
                    else if (con_Exit.Key == ConsoleKey.Backspace)
                    {                    }这个的时候 可以输入多个YYYYY  怎么限制只能输入一个呢?

解决方案 »

  1.   


    con_Exit.Key.ToString().Substring(0,1);你试试这样可以不,0.0在控制台里面没试过
      

  2.   

    ConsoleKeyInfo con_Exit = Console.ReadKey(true);
                        if (con_Exit.Key == ConsoleKey.Y)ReadKey(true)这句只接受一个字符`也就是说输入一次执行一次判断
    con_Exit.Key.ToString().Substring(0,1);
    所以这句就没用了`只有一个还截取什么啊
      

  3.   


    怎么?这样不行吗?在cmd下输入chkdsk最后提示:系统发现有损坏的文件您是否要立即修复?(Y/N)我输入N 后可以删掉再输入Y 输入Y后可以再删掉输入N 但只能输入Y或NC#里咋搞
      

  4.   

    用'\b'调整光标位置            while (true) {
                    ConsoleKeyInfo key = Console.ReadKey();
                    Console.Write("\b");
                    Console.Write(key.KeyChar);
                    Console.Write("\b");
                }
      

  5.   

    其实只要这样就行了            while (true) {
                    ConsoleKeyInfo key = Console.ReadKey();
                    Console.Write("\b");
                }
      

  6.   


                        Console.Write("\n");
                        Console.Write("\n");
                        Console.Write("\n");
                        Console.Write("-------------------------------------------------------------------------\n");
                        Console.Write("您确定要退出?(Y/N)\n");
                        Console.Write("-------------------------------------------------------------------------\n");
                        Console.Write("请选择:");
                        ConsoleKeyInfo con = Console.ReadKey(true);
                        if (con.Key == ConsoleKey.Y)
                        {
                            Console.Write(con.Key.ToString());
                            Console.Write("\b");
                            //Console.ReadLine();
    只要我输入了Y再随便按一个键程序就退出了
    加上Console.ReadLine();后`但是又可以输入其它的字符了,这些字符可以删除,唯独第一个输入的不能删除
      

  7.   

    再送你一段代码            Console.WriteLine("退出?(Y/N):");
                ConsoleKeyInfo key;
                do {
                    key = Console.ReadKey();
                    Console.Write("\b");
                } while (key.Key != ConsoleKey.Y && key.Key != ConsoleKey.N);
                if (key.Key == ConsoleKey.Y)
                    Console.WriteLine("退出\n");
                else
                    Console.WriteLine("不退出\n");