c# – 在标题栏上按住鼠标时形式冻结

c# – 在标题栏上按住鼠标时形式冻结,第1张

概述在 Windows窗体应用程序中,当我将鼠标指针放在窗体的标题栏上时,向左按住按钮并保持它(但不要移动指针),事件循环会冻结一段很短的时间. 此外,在标题栏上的关闭按钮上按住向左按钮会无限期地冻结表单. 我想避免这种冻结,因为我的应用程序正在对System.Windows.Forms.Timer触发的绘图进行实时更新. 这是示例应用程序.此应用程序只显示一个表单,并快速闪烁其颜色: using S 在 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功能有关,但不知道如何避免它.

解决方法 如果将代码的闪烁部分移动到单独的线程,则闪烁应该由任何其他事件独立,并且应用程序将保持闪烁,即使您将鼠标按下关闭按钮也是如此. 总结

以上是内存溢出为你收集整理的c# – 在标题栏上按住鼠标时形式冻结全部内容,希望文章能够帮你解决c# – 在标题栏上按住鼠标时形式冻结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1226941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存