当前位置: 首页 > 编程语言 > C#

控制台应用程序在鼠标单击时冻结Share

时间:2023-04-11 02:53:32 C#

控制台应用程序在鼠标单击时冻结.使用System.Collections.Generic;使用系统诊断;使用System.Linq;使用系统文本;使用系统线程;namespaceSampleApp{publicstaticclassProgram{publicstaticvoidMain(string[]args){varkey=newConsoleKeyInfo();varwatch=Stopwatch.StartNew();vartimeout=TimeSpan.FromSeconds(5);Console.WriteLine("按escape返回上一界面...");控制台.WriteLine();do{Console.WriteLine("Thisscreenwillautomaticallyclosein"+((timeout+TimeSpan.FromSeconds(1))-watch.Elapsed).ToString(@"hh:mm:ss")+".");如果(Console.KeyAvailable){key=Console.ReadKey(true);}else{Thread.Sleep(TimeSpan.FromSeconds(0.10D));}}while((key.Key!=ConsoleKey.Escape)&&(超时>(watch.Elapsed-TimeSpan.FromSeconds(0.5D))));观看。停止();这很好,但如果我用鼠标单击控制台应用程序(例如获得焦点),屏幕上的所有活动都将冻结,直到我右键单击或按退出键。在此期间,控制台的标题也将更改为“选择AppName”,假设“AppName”是之前的标题。如果我先右键单击控制台,do{...}while();循环似乎变得疯狂,打印了很多额外的行。由于我不知道控制台的这种行为,所以不知道该问什么。这是预期的吗?如果是这样,我可以改变这种行为吗?如果没有,将不胜感激任何建议的解决方法。使用上面的汉斯评论解决了这个问题。听我说,你以某种方式激活了控制台窗口的标记和粘贴命令。通常通过系统菜单激活(Alt+空格键、编辑、标记/粘贴)。当然,这与这段代码无关。显然,出于某种原因,快速编辑模式是在控制台默认设置中设置的(Alt+Space、默认、选项、编辑选项、快速编辑模式)。取消选中它将解决问题。以上是C#学习教程:控制台应用程序在鼠标点击时冻结所有分享的内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: