首页 > 其他分享 >winform窗体闪烁问题解决方式

winform窗体闪烁问题解决方式

时间:2023-08-16 10:11:29浏览次数:35  
标签:return CreateParams vs 窗体 ControlStyles cp 闪烁 winform

winform窗体闪烁问题解决方式

1、使用窗体双缓冲

SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
UpdateStyles();

窗体的DoubleBuffered 指示是否对控件进行双缓存处理。

2、使用CreateParams的使用解决闪屏问题

#region 解决添加背景图片时闪屏的问题
        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED
                if (this.IsXpOr2003 == true)
                {
                    cp.ExStyle |= 0x00080000;  // Turn on WS_EX_LAYERED
                    this.Opacity = 1;
                }
                return cp;
            }
        }

        /// <summary>
        /// 防止闪烁
        /// </summary>
        private Boolean IsXpOr2003
        {
            get
            {
                OperatingSystem os = Environment.OSVersion;
                Version vs = os.Version;
                if (os.Platform == PlatformID.Win32NT)
                    if ((vs.Major == 5) && (vs.Minor != 0))
                        return true;
                    else
                        return false;
                else
                    return false;
            }
        }
        #endregion

 

标签:return,CreateParams,vs,窗体,ControlStyles,cp,闪烁,winform
From: https://www.cnblogs.com/1175429393wljblog/p/17633252.html

相关文章

  • Winform-控件美化小技巧
    提供一些日常控件美化的小技巧,复杂需求则需要扩展控件。⭐圆角按钮,渐变色按钮1>从PPT中选择圆角长方形形状,填充颜色渐变色,右击另存为png图片;2>按钮的BackColor设置为透明,BackGroundImage设置为刚才的图片,LayOut设为Stretch;3>按钮的FlatStyle设置为Flat,FlatAppearance的Borde......
  • C# WINFORM 屏幕绘画+透明窗体+鼠标穿透
    通过长时间研究终于找到关于在C#WINFORM下制作真正的透明窗体在系统桌面上画图的完美解决方案;可以避免解决与其网上其它画图工具的很多不足,网上实现思路如下几种:1、使用API透明窗体+底层鼠标钩子可以实现,但要重新实现鼠标的监听操作,实再太麻烦了;2、使用第三方透明窗体控件(如La......
  • C# Winform 鼠标穿透
    以前在玩射击游戏的时候,狙击枪的设定一般是开镜才有准星,所以想是不是可以自己造一个默认准星出来,思路是现在窗口上画一个准星,然后把窗体其他区域都透明,然后设置鼠标穿透;结果是:UpdateLayeredWindow的不规则窗口中,添加鼠标穿透功能导致不规则窗口失效。GraphicsPathForm的不规则......
  • C# Winform 使用 BarTender打印条码
    -1.使用软件BarTender设计打印模板贴一个入门级使用教程:https://blog.csdn.net/ononeway/article/details/119912602我在项目中使用的是txt文本格式保存的字段以及数据,第一行是绑定数据的字段,第二行是字段对应的数据。点击查看代码"ITEM_CODE","ITEM_DESC","UOM_NAME","V......
  • Winform 自动升级程序
    抽时间整理下升级这块的功能,并封装一个升级工具包。作为winform程序员都有一个C/S端程序绕不过的问题。那就是如何升级程序?程序升级两种1.启动时强制更新2.自动、手动获取更新,并确认是否升级。今天咱们介绍,自动或者手动更新功能。首先思考如何升级?升级肯定要有一个新的升级......
  • WinForm DevExpress 添加行内按钮
    1.在设计器里面添加一列,设置单元格不可编辑、只读属性   2.在所在GridView属性里面添加CustomDrawCell事件与RowCellClick事件privatevoidgvMain_CustomDrawCell(objectsender,DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgse){......
  • winform的几种常用对话框
    保存文件对话框:SaveFileDialogsfd=newSaveFileDialog();sfd.InitialDirectory=Path.GetDirectoryName(Application.ExecutablePath);sfd.Filter="文本文件|*.txt|配置文档|*.ini";sfd.FileName="newName";if(sfd.ShowDialog()==System.Windows.Forms......
  • 基于C#的无边框窗体阴影绘制方案 - 开源研究系列文章
    今天介绍无边框窗体阴影绘制的内容。      上次有介绍使用双窗体的方法来显示阴影,这次介绍使用API函数来进行绘制。这里使用的是WindowsAPI函数,操作系统的窗体也是用的这个来进行的绘制。1、项目目录;下面是项目目录; 2、函数介绍;这里使用......
  • 记录--Loading 用户体验 - 加载时避免闪烁
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助在切换详情页中有这么一个场景,点击上一条,会显示上一条的详情页,同理,点击下一条,会显示下一条的详情页。伪代码如下所示:我们定义了一个 switcher 模版,用户点击上一条、下一条时调用 goToPreOrNext 方法。该页面......
  • C# WINFORM窗体右上角X点击后无法退出调试
    这个是由于你的程序在运行过程中开启了新线程,而在结束时没有把线程退出privatevoidBtnUpdate_Click(objectsender,EventArgse){intiX=this.Left;intiY=this.Top;Threadthr="更新".FindAndMoveMsgBox(iX,iY,true);if(dgv.......