精华内容
下载资源
问答
  • 1,设定个别控件的双缓冲: public static void SetDoubleBuffered(object obj) { Type type = obj.GetType(); PropertyInfo pi = type.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags...

    1,设定个别控件的双缓冲:

     public static void SetDoubleBuffered(object obj)
            {
                
                Type type = obj.GetType();
                PropertyInfo pi = type.GetProperty("DoubleBuffered",
                    BindingFlags.Instance | BindingFlags.NonPublic);
                pi.SetValue(obj, true, null);
            }
    

    2,跳过系统消息

    protected override CreateParams CreateParams
     {
     get
        { 
                    CreateParams cp = base.CreateParams;
                    cp.ExStyle |= 0x02000000;
                    return cp;
        } 
     }
    

    3,整个form的双缓冲(基本没有啥用)

    this.DoubleBuffered = true;//设置本窗体 
     SetStyle(ControlStyles.UserPaint, true); 
     SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. 
     SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
      SetDoubleBuffered(PanelIndex);
     SetDoubleBuffered(PanelControl);
    

    4,跳过系统的信息

      protected override void WndProc(ref Message m)
     {
                     if (m.Msg == 0x0014) // 禁掉清除背景消息
                       return;
                     if(m.Msg == 0xf)
                    return;
                if (m.Msg == 0x88)
                    return;
                base.WndProc(ref m);
            }
    
    展开全文
  • Install install = new Install(); install.MaximizeBox = false; install.ShowDialog(); ... ocnn = new OleDbConnection...但是第二次更改后就不自己刷新了,还要我手动去点下别内容的才刷新。这是为什么?
  • 最近做winform页面控件很多,页面第一次载入或者动态禁用、显示时页面闪烁得很厉害;根据网上说的加页面缓存之类的都没什么用,偶然从外国的一个论坛中找到了解决办法,原贴已经找不到了;贴上国外小哥的代码 1 ...

    最近做winform页面控件很多,页面第一次载入或者动态禁用、显示时页面闪烁得很厉害;根据网上说的加页面缓存之类的都没什么用,偶然从外国的一个论坛中找到了解决办法,原贴已经找不到了;贴上国外小哥的代码

    1 protected override CreateParams CreateParams
    2         {
    3             get
    4             {
    5                 CreateParams cp = base.CreateParams;
    6                 cp.ExStyle |= 0x02000000;
    7                 return cp;
    8             }
    9         }

    代码放在窗体的任意位置,其次就是窗体的Opacity属性要设为100%,否则还是会有闪烁。

    转载于:https://www.cnblogs.com/henryzong/p/6209832.html

    展开全文
  • C#winform界面刷新

    万次阅读 2016-05-30 14:08:02
    本文要实现的功能,是使用C#语言自动刷新页面。这个功能使用Timer可以很容易地实现。这里需要实现的自动刷新功能,要求可以从指定的几种选项里自由设置自动刷新的时间间隔。 我实现的效果如下图,这个DEMO定时...

    本文要实现的功能,是使用C#语言自动刷新页面。这个功能使用Timer可以很容易地实现。这里需要实现的自动刷新功能,要求可以从指定的几种选项里自由设置自动刷新的时间间隔。

    我实现的效果如下图,这个DEMO定时刷新的是中间Label内文字的字体。


    实现这一功能,要考虑到如下几个方面:

    1、这些选项最好可以在代码中以非常简便的方式添加,如构造一个函数,而不是在拉界面的时候手工添加,并逐一设置事件。如果手工添加事件,会造成每次增加或减少一个时间选项时,都要对其他所有选项的事件进行修改(至少各选项Checked属性的true和false会改)

    2、用一个计时器来进行刷新时,“不启用”这个选项比较特殊,该选项只需要关闭计时器即可,其他的时间间隔选项都是先把计时器停掉,修改时间间隔后再将计时器打开

    3、根据个人偏好(或业务需求),可以设定在每次变化自动刷新时间间隔后是否立即刷新一次,我的例子中,每次变化时间间隔后(选择“不启用”时除外),会立即刷新一次

    界面上的控件如下:


    窗体内代码如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace RefreshTimelyDemo
    {
        public partial class FormMain : Form
        {
            public FormMain()
            {
                InitializeComponent();
            }
    
            string[] font = new[] 
                { 
                    "宋体""仿宋""黑体""微软雅黑""幼圆""隶书""楷体",
                    "华文新魏""华文琥珀""华文行楷""华文彩云""方正姚体""方正舒体" 
                };
    
            /// <summary>
            /// 自动刷新时间间隔项
            /// </summary>
            LinkedList<ToolStripMenuItem> items = new LinkedList<ToolStripMenuItem>();
            /// <summary>
            /// 随机数种子
            /// </summary>
            Random random = new Random(DateTime.Now.Millisecond);
            /// <summary>
            /// 自动刷新计时器
            /// </summary>
            Timer timer = new Timer();
    
            private void Form1_Load(object sender, EventArgs e)
            {
                ToolStripMenuItem tsmiNone = new ToolStripMenuItem("不启用");
                tsmiNone.Click += (obj, arg) => 
                {
                    foreach (ToolStripMenuItem item in items)
                    {
                        item.Checked = 
                            item.GetHashCode() == tsmiNone.GetHashCode() ? true : false;
                    }
                    timer.Stop();
                };
                items.AddLast(tsmiNone);
                btnRefreshConfig.DropDownItems.Add(tsmiNone);
                btnRefreshConfig.DropDownItems.Add(new ToolStripSeparator());
                AddRefreshOption("500毫秒"500);
                AddRefreshOption("1秒"1000);
                AddRefreshOption("5秒"5000);
                btnRefreshConfig.DropDownItems.Add(new ToolStripSeparator());
                AddRefreshOption("1分钟"60000);
                AddRefreshOption("5分钟"300000);
                AddRefreshOption("30分钟"1800000);
    
                tsmiNone.Checked = true;
                timer.Tick += (obj, arg) =>
                {
                    RefreshFont();
                };
            }
    
            /// <summary>
            /// 更新数据
            /// </summary>
            private void RefreshFont()
            {
                int num = random.Next(0, font.Length);
                lblText.Font = new Font(font[num], lblText.Font.Size);
                lblFontName.Text = font[num];
            }
    
            /// <summary>
            /// 添加刷新项
            /// </summary>
            /// <param name="text"></param>
            /// <param name="interval"></param>
            private void AddRefreshOption(string text, int interval)
            {
                ToolStripMenuItem tempItem = new ToolStripMenuItem(text);
                tempItem.Click += (obj, arg) =>
                {
                    foreach (ToolStripMenuItem item in items)
                    {
                        item.Checked = 
                            item.GetHashCode() == tempItem.GetHashCode() ? true : false;
                    }
                    timer.Stop();
                    timer.Interval = interval;
                    RefreshFont();
                    timer.Start();
                };
                items.AddLast(tempItem);
                btnRefreshConfig.DropDownItems.Add(tempItem);
            }
    
            /// <summary>
            /// 手动刷新
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnRefresh_Click(object sender, EventArgs e)
            {
                RefreshFont();
            }
    
            /// <summary>
            /// 窗口退出前关闭计时器
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
            {
                timer.Stop();
            }
        }
    }
    展开全文
  • WinForm刷新其他页面的方法

    千次阅读 2007-05-25 21:32:00
    有时候在一个窗体中修改、添加或者删除数据后要在另外一个窗体的数据表中(如datagrid、datalist)中及时的反映更新的信息,这时必须对数据表进行刷新。可以通过对绑定数据源进行更新,如绑定源是一个Table表,则在...

    有时候在一个窗体中修改、添加或者删除数据后要在另外一个窗体的数据表中(如datagrid、datalist)中及时的反映更新的信息,这时必须对数据表进行刷新。

    可以通过对绑定数据源进行更新,如绑定源是一个Table表,则在子窗体中加入代码:

    dataTable.AcceptChanges();

    另外一个方法:重新设置数据源,这个方法更加简单,首先把原来的datasource=null;在重新设置:datasource=dataTable;

     

    展开全文
  • 是这样,我有winform页面,上面有19个label和19个textbox,当我打开这个窗体的时候,页面刷新慢,一卡一卡的,请问这是怎么回事啊?如何让这个窗体快速的显示出来啊?感觉在打开的时候好像就是在刷新那些lable和...
  • 写一个查询导出工具,下拉选择SQL Server和oracle两种数据库进行查询且导出excel文档。 中间发现当选择sql server数据库,在textbox输入各种数据后不提交,重新选择oracle数据库,这些输入的数据还在。...
  • this.DialogResult = DialogResult.OK;//可以理解点击按钮触发从(全局变量中获取enum的定值) if (addForm.ShowDialog() == DialogResult.OK) { LoadData();//刷新dataGridView控件中的数据库内容 } 转载...
  • winform页面防止页面卡死的方法有很多。这里介绍一种本人实战过的,可以用于高频率刷新页面控件的方法。仅供参考。其中运用到的技术主要包括: 队列使用、线程使用、委托刷新、用户控件; 首先:封装本地队列服务 ...
  • 首先 有两个form窗体 Form1,Form2和一个usercontrol usercontrol1 1、在Form1窗体中有一个 splitContainer1容器控件 splitContainer1.panle1中有一个button ...这样就可以对usercontrol中的控件进行刷新了 hoho~
  • 接收传值页面 public CIL_Currency_Add(string button, string CurrencyCode, string Txt) : this() { Action = button; this.Text = Action; CurrencyCodeEdit.Text = CurrencyCode; TxtEdit.Text = Txt; }
  • winform中控件数据刷新

    千次阅读 2009-03-06 14:43:00
    一个郁闷的问题,在B/S结构的系统中要做到刷新数据但无刷新效果是很简单...呵呵,原因是这样的: 在我的MainForm页面我添加了一个自定义控件UserControl,使用时我用他来绑定数据,但是我又想让他做到时时刷新,然后我
  • 最近在做一个winform项目,其中一个panel内的全部控件都是动态添加到页面中的,并且这些动态的控件需要做添加、删除等的功能,考虑到界面的美观,在每添加或删除时都要重新加载所有动态控件,但是,有一个问题就是...
  • 用委托事件实现数据实时推送并刷新页面,适用于前台和后台松耦合但没有分布式部署的情况。 2. 首先定义一个全局的委托事件 [csharp] view plain copy public class Notice   {  ...
  • 今天在做项目的过程中,遇到了一个问题,就是在TabPage中,动态的加载两个窗体,...首先在订单页面增加刷新按钮,在tabpage的selectchanged事件中,通过代码去控制刷新按钮进行刷新即可。 这里说一下重点:刷新按钮一
  • winform页面防止页面卡死的方法有很多。这里介绍一种本人实战过的,可以用于高频率刷新页面控件的方法。仅供参考。其中运用到的技术主要包括: 队列使用、线程使用、委托刷新、用户控件; 首先:封装本地队列服务 ...
  • 页面时会更多的关注界面设计的好不好看,而很少会去关注页面之间的交互方式怎么样?现在对UI设计师的综合要求越来越高,我们在做设计时也...下拉刷新3.占位图加载4.分步加载5.自动加载6.预加载(懒加载)7.多态按钮...
  • pyqt5学习笔记——刷新页面

    万次阅读 多人点赞 2017-12-21 10:17:22
    因为最近要写PC端程序,于是乎开始学习pyqt5,今天刚刚学习到了之前一直疑问的东西,就是刷新界面。 其实就是一句话的事儿,但是我搜索了好久好久都没找到。觉得有必要在这里记录下。import sys from PyQt5.Qt...
  • WinForm网页浏览定时自动截图工具简介  WinForm网页浏览定时自动截图工具,作用是登录头条网站,看文章在固定时间内的浏览量,... WinForm网页浏览定时自动截图工具页面展示 相关阅读  同类推荐:站长常用源码
  • 如何在WPF中嵌入Winform控件

    千次阅读 2015-08-10 11:53:52
    当时把WPF的控件canvas的handle传给C++的项目去刷新图像的时候发现最后刷新的是整个WPF页面而不是控件所在的区域,还不知道有什么办法可以解决。 不过可以在WPF中嵌入WINFORM的图像控件PictureBox去做刷新。 嵌入...
  • DataGridView连接数据库对表进行增删改查 一、绑定数据源 //做一个变量控制页面刷新 public static int bs = 0; public Form1() { InitializeComponent(); } ...
  • winform开发中有多种页面间的传值,下面介绍下通过事件进行页面刷新操作 1、Winform开发框架的界面层的继承关系 在开篇之前,首先介绍一下Winform开发框架中的界面层的继承关系,首先我把所有窗体区分为三类,一...
  • 这个我是在winform页面上做的 1. 首先是在页面上添加3个lable 第一次点击lable会有相应的数据被查询出来 第二次点击同一个lable会刷新所有的数据 2.点击不同的label会有颜色提示当前点击的是哪一个 第二次点击的...
  • 第一次加载页面缓慢,使用鼠标右键菜单中刷新以及F5刷新,加载异常缓慢,且出现较长时间空白。请问怎么解决?后台什么代码都没有,只是WebBrowser链接到web。 URL在后台赋值,异步加载也试过,但是报安全警告,且...
  • C#写的winform程序,使用了第三方控件DevExpress,页面每隔2秒有数据刷新。 程序多数时间运行正常,但有时运行一段后出现如下错误: ![图片说明]...
  • 在更新DataGridView的条目后,调用gv.Refresh()进行刷新,但刷新后的结果未显示到页面 this.gridFiles.Refresh(); 网上查资料后发现需要进到创建控件的主线程去更改,即Invoke方法,用委托去进行刷新 if (grid...

空空如也

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

winform页面刷新