C# 防止窗体闪烁】的更多相关文章

/// 解决mdi窗体闪烁的问题 /// </summary> protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } } 在父winform的代码页中加入这段代码即可.…
C# 解决窗体闪烁 在Windows窗体上造成“闪烁”的窗体上有很多控制.造成这种闪烁的原因有两个: 1.当控件需要被绘制时,Windows发送一个控件两个消息.第一个(WM_ERASEBKGND)导致背景被绘制(OnPaintBackground),第二个导致前景被绘(WM_PAINT,射击OnPaint).首先看到背景,然后当绘图缓慢时前景变得明显.Windows窗体使用ControlStyles.OptimizedDoubleBuffer为这种闪烁提供了一个现成的解决方案. 2.有很多控件…
解决窗体闪烁问题 具体代码: 1.在声明窗体类时加入:   private     procedure CreateParams(var Params: TCreateParams); override; 2.在窗体实现部分加入:   procedure TFrm_Main.CreateParams(var Params: TCreateParams);   begin     inherited;     Params.ExStyle := 33554432; //0x 02 00 00 00…
delphi实现窗体闪烁功能 以前做窗口闪动时都没有考虑到让任务栏上的按钮闪动的问题, 现在一个客户需要任务栏按钮闪动,发现以前使用的flashwindow不能达到要求了, 查找了一下,找到flashwindowex这个API 如果您创建的应用程序是运行在Windows 98或更高版本操作系统上,您可以通过调用API函数FlashWindowEx并赋给它一个FlashWInfo结构体来实现. 而如果是运行在Windows 95上则比较麻烦, 但您也可以通过使用一个Timer组件来实现想要的效果.…
如果你在Form中绘图的话,不论是不是采用的双缓存,都会看到图片在更新的时候都会不断地闪烁,解决方法就是在这个窗体的构造函数中增加以下三行代码: 请在构造函数里面底下加上如下几行: SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲 参数说明…
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; } retu…
在主窗体中任意位置加上下面的代码即可 protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } }…
在构造函数里加上以下代码: this.DoubleBuffered = true;//设置本窗体            SetStyle(ControlStyles.UserPaint, true);            SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.            SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲            //…
在父窗体随意为之添加 protected override CreateParams CreateParams { get { XtraForm xa = _App.Framework.MainForm; xa. CreateParams cp = xa.CreateParams; cp.ExStyle |= 0x02000000; return cp; } }…
准备: [DllImport("user32.dll")] static extern bool FlashWindowEx(ref FLASHWINFO pwfi); [DllImport("user32.dll")] static extern bool FlashWindow(IntPtr handle, bool invert); [StructLayout(LayoutKind.Sequential)] public struct FLASHWINFO {…
主要功能: C#让窗体最小化至任务栏,同时在系统托盘区的图标点击左键能显示窗体,并使窗体闪烁. 首先: 创建窗体应用程序,并添加控件NotifyIcon及ContextMenuStrip控件 NotifyIcon:点击notifyIcon1属性,为控件属性Icon添加图标 contextMenuStrip1属性,进入Items添加或右键"编辑项".添加4个toolStripMenuItem,设置其Text为"显示窗体"."隐藏窗体"."…
在安装了.net4.6的版本是不会出现该问题的,但是在4.6以下的版本会出现,当设置之窗体的left和top属性时,会让主窗体闪烁一下. 之前是在load事件下写的: child_window.loaded+=(sender,e)=> { child_window.WindowStartupLocation=WindowStartupLocation.Manul; child_window.Left= ***; child_window.Top=***; } 这样写是会出现闪烁现象 所以改成了下…
WinForm 上放置的控件多了或者有大背景图,窗体加载时就会闪烁,对于一般的闪烁,设置 DoubleBuffer=True或许有一点改善,要立竿见影的解决可以重载 CreateParams 使用 WS_CLIPCHILDREN 参数初始化窗体,相关的文章网上多不胜数,这里也就不再赘述. WS_CLIPCHILDREN 方法虽好,但是就其原理,不是哪里都能拿来用的.比如需要子窗体刷新的场景下,如绘图或者实时视频显示的时候上了这一剂猛药,就玩不下去了,需要改换其他的办法. 最近在MDI子窗体上加载…
winform程序中使用线程的必要性: 单线程操作在执行耗时任务时会造成界面假死,带来非常差劲的用户体验,有时候甚至会影响到正常的业务执行,使用多线程做相关操作实属不得已之举. 那么在编写程序之前必须要明白的一个点就是窗体的UI的操作只能通过UI线程来执行,其他线程如果要去执行窗体中的控件值修改或者其它[任何和窗体线程相关的操作],就会报异常,所有人都知道的.为了适应这一特性,于是就有了这样的写法: private void button1_Click(object sender, EventA…
同样是,重绘边框事件,win7系统显示正常,而xp系统却不显示,这是什么原因造成的呢? 于是,小编开始百度,不停的查找原因,通过一番查找,小编也意外的收获了一些内容: 例如:窗口的拖动,放大,缩小,等,都会重新触发paint重绘事件.那么,什么原因会影响重绘的不显示呢? 最后发现,页面上重写的CreateParams方法(原本是为了解决窗体闪烁的问题),影响了重绘边框的显示.…
Hashtable 数据遍历的几种方式 ---Hashtable 在集合中称为键值对,它的每一个元素的类型是 DictionaryEntry,由于Hashtable对象的键和值都是Object类型,决定了它可以放任何类型的数据 Hashtable ht = new Hashtable(); ht.Add(", person1); ht.Add(", person2); ht.Add(", person3); ht.Add(", person4); ht.Add(&q…
CS_BYTEALIGNCLIENT:以字节边界来对齐窗口客户区,这个风格会影响 窗口 的宽度和水平位置.实际上没有看到效果. CS_BYTEALIGNWINDOW:以字节边界来对齐窗口,这个风格会影响窗口的宽度和水平位置.实际上没有看到效果. CS_CLASSDC:分配一个DC,凡是用这个类的窗口都能共享这个DC.因为窗口类是具体的,所以一个程序的多个线程可以创建同一个类下的多个窗口,也有可能多个线程同时使用同一个DC,在这种情况 下,系统只会让其中一个线程来完成绘画操作. CS_DBLCLK…
最近,我给一家公司做了个电梯多媒体软件,该软件使用C#编写,现在我将其中遇到的问题及其解决方法总结一下,以便下次再遇到同样的问题可以快速解决:同时,也给博友分享一下,共同学习,共同提高. 1.Question:关闭窗体时出现“执行CreateHandle()时无法调用值Dispose()”的错误,如下图所示: Answer:原因是当前窗体的句柄还未创建完成,还存在CreateHandle()事件,还不能回收垃圾,还不能直接关闭窗体. 在执行窗体的Close方法时,加入判断语句,如下: if (…
Windows Forms是由Win32 API封装的开发组件,最初是为了替代mfc,但却没有体现与Model View Controller架构对应的特色,进而在.net framework 3.0中推出了wpf,富控件数据显示方面,利用模板功能轻松实现. 在winform下要想自定义一些用户控件,就需要运用的2D绘画类.下图我们为ListBox重新排列了数据显示方式,并为每一个item加入了删除按钮. 首先我们设计一个承载数据的类ListBoxItem. public class ListB…
经常在开发实际的应用程序中,需要用到图形绘制和打印程序.如何实现完整的精确打印和绘图是需要注意许多细节地方的.最近在遇到打印问题的时候,仔细研究一阵,总结这篇博文,写得有点杂乱,看文要还请费点神. 基本功能:窗体绘图与鼠标交互  打印预览与打印输出 开发平台:VisualStudio 2010 (C#) 1绘图坐标系统 1.1绘图系统坐标转换(屏幕窗口/打印机) 绘图程序涉及到多种坐标系统,总体上可分为三个坐标系:世界坐标系.页面坐标系以及设备坐标系.想要将图形图像会知道最终的设备上,中间需要做…
微软已经提供了GDI+绘图方式,但是GDI+绘图较慢,另外微软提供了效率更高的DirectDraw绘图方式.DirectDraw提供硬件加速功能. 首先需要确保电脑上的Ddraw硬件加速功能已经打开,安装DirectX March 2009之后,可以在[开始]菜单->运行 Dxdiag 命令,检查是否打开硬件加速.如图1: 如果DirectDraw加速未启用,需要更新驱动. 开始使用DirectDraw编写程序,需要引入ddraw.h头文件,并把ddraw.lib添加到工程里. DirectDr…
一共470多例winform 界面特效的源码. 实例030 窗口颜色的渐变 实例说明 在程序设计时,可以通过设置窗体的BackColor属性来改变窗口的背景颜色.但是这个属性改变后整个窗体的客户区都会变成这种颜色,并且非常单调.如果窗体的客户区可以向标题栏一样能够体现颜色的渐变效果,那么窗体风格将会另有一番风味.本例设计了一个颜色渐变的窗体.效果如图1.30所示. 技术要点 C#中可以通过Color.FromArgb( )方法返回一种颜色,下面详细介绍一下该方法. Color.FromArgb(…
相关参考资料: GDI下实现双缓冲 - http://jingyan.baidu.com/article/e73e26c0f8df2424acb6a76e.html <Win32_19>用双缓冲技术实现真个的平滑 - http://www.myexception.cn/program/1407847.html 设置双缓冲减少窗体闪烁 - http://hi.baidu.com/robinlxzh/item/ad70a4ae92db5bf614329be7 平时在窗体上不使用双缓冲来绘制的方法:…
经常在开发实际的应用程序中,需要用到图形绘制和打印程序.如何实现完整的精确打印和绘图是需要注意许多细节地方的.最近在遇到打印问题的时候,仔细研究一阵,总结这篇博文,写得有点杂乱,看文要还请费点神. 基本功能:窗体绘图与鼠标交互 打印预览与打印输出 开发平台:VisualStudio 2010 (C#) 1绘图坐标系统 1.1绘图系统坐标转换(屏幕窗口/打印机) 绘图程序涉及到多种坐标系统,总体上可分为三个坐标系:世界坐标系.页面坐标系以及设备坐标系.想要将图形图像会知道最终的设备上,中间需要做各…
private void Form1_Load(object sender, EventArgs e) { //在窗体加载的时候 解决窗体闪烁问题 //将图像绘制到缓冲区减少闪烁 this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true); }…
sed -i "1iServer = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686" /etc/pacman.d/mirrorlist.mingw32 sed -i "1iServer = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64" /etc/pacman.d/mirrorlist.mingw64 sed -i "1iServ…
一共470多例winform 界面特效的源码. 窗体与界面设计... 9 实例001  带历史信息的菜单    10 实例002  菜单动态合并    12 实例003  像开始菜单一样漂亮的菜单... 14 实例004  任务栏托盘菜单    15 实例005  可以拉伸的菜单界面    16 实例006  菜级联菜单    18 1.2  工具栏设计... 19 实例007  带带背景的工具栏    19 实例008  带浮动工具栏    20 实例009  在带下拉菜单的工具栏... 21…
一共470多例winform 界面特效的源码. 窗体与界面设计... 9 实例001  带历史信息的菜单    10 实例002  菜单动态合并    12 实例003  像开始菜单一样漂亮的菜单... 14 实例004  任务栏托盘菜单    15 实例005  可以拉伸的菜单界面    16 实例006  菜级联菜单    18 1.2  工具栏设计... 19 实例007  带带背景的工具栏    19 实例008  带浮动工具栏    20 实例009  在带下拉菜单的工具栏... 21…
https://wiki.qt.io/MSYS2pacman -S base-devel git mercurial svn wget p7zip软件包 开发包 http://mirrors.ustc.edu.cn/msys2/ https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/ 最近一段时间不知怎么的,使用默认的 MSYS2 源升级软件或是安装新软件的特别的慢.所以就翻了翻国内的几个开源软件的镜像库,发现中科大的库里就有 MSYS2.所以就研究了…
using System; using System.Collections.Generic; using System.Text; using System.Collections; using System.Windows.Forms; using System.Drawing; //展示端口 namespace TemperatureSytem { static class ShowPortIsOrNo { /// <summary> /// 显示可用端口,和提示 /// </su…