c# – 在标题栏上按住鼠标时形式冻结
发布时间:2020-12-15 21:00:20 所属栏目:百科 来源:网络整理
导读:在 Windows窗体应用程序中,当我将鼠标指针放在窗体的标题栏上时,向左按住按钮并保持它(但不要移动指针),事件循环会冻结一段很短的时间. 此外,在标题栏上的关闭按钮上按住向左按钮会无限期地冻结表单. 我想避免这种冻结,因为我的应用程序正在对System.Windows
在
Windows窗体应用程序中,当我将鼠标指针放在窗体的标题栏上时,向左按住按钮并保持它(但不要移动指针),事件循环会冻结一段很短的时间.
此外,在标题栏上的关闭按钮上按住向左按钮会无限期地冻结表单. 我想避免这种冻结,因为我的应用程序正在对System.Windows.Forms.Timer触发的绘图进行实时更新. 这是示例应用程序.此应用程序只显示一个表单,并快速闪烁其颜色: using System; using System.Windows.Forms; using System.Drawing; namespace WindowsFormsApplication1 { static class Program { [STAThread] static void Main() { var form = new Form(); var flag = false; var timer = new Timer(); timer.Interval = 100; timer.Tick += (o,e) => { var brush = flag ? Brushes.LightGray : Brushes.DarkGray; using (var g = form.CreateGraphics()) g.FillRectangle(brush,form.ClientRectangle); flag = !flag; }; timer.Start(); Application.Run(form); } } } 此示例应用程序始终闪烁.但是当在标题栏上按住鼠标(或标题栏上的关闭按钮)时,它会停止闪烁. 我想这个问题与DragDetect功能有关,但不知道如何避免它. 解决方法
如果将代码的闪烁部分移动到单独的线程,则闪烁应该由任何其他事件独立,并且应用程序将保持闪烁,即使您将鼠标按下关闭按钮也是如此.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容