记录|Form1中嵌套Form2时的频闪问题解决[不同于常见的三部曲]

目录

  • 前言
  • 一、常见的解决方案
  • 二、自己创建渐变色组件GradientPanel
  • 三、最终效果展示
  • 更新时间


前言

参考文章:
C#画图解决闪烁问题
[解决winform中重绘时控件闪烁的问题](panel1.GetType().GetProperty(“DoubleBuffered”,System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(panel1, true, null)😉
参考视频:
C# WinForm 制作一个渐变背景Panel

没想到进行自动化页面布局后,Form之间的嵌套会出现频闪问题。
在这里插入图片描述

尝试了常见的设置双缓冲方法,给组件,给Form都试过,结果都无法解决闪屏的问题。
后来直接采用视频中的自己创建组件的方式解决了问题。


一、常见的解决方案

  • 就是开启组件的双缓冲方法
panel1.GetType().GetProperty("DoubleBuffered",System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(panel1, true, null);

或者

this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw |ControlStyles.AllPaintingInWmPaint, true);

二、自己创建渐变色组件GradientPanel

  • 就是创建个.cs类,只是里面的写法没见过,哈哈哈,现在长知识了。这边将完整代码放到下面:
/** 功 能:     渐变色Panel* 创建时间:  2024/8/27 21:18:19* 创建人:     小白鼠零号
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace ZHCH_winform_2.manager
{public class GradientPanel : Panel{private Color exColor1 = Color.Lime;[Category("EX属性")][DefaultValue(typeof(Color), "Lime")]public Color EXColor1{get { return exColor1; }set { exColor1 = value; Invalidate(); }}private Color exColor2 = Color.Blue;[Category("EX属性")][DefaultValue(typeof(Color), "Blue")]public Color EXColor2{get { return exColor2; }set { exColor2 = value; Invalidate(); }}private float exAngle = 45f;[Category("EX属性")][DefaultValue(typeof(float), "45")]public float EXAngle{get { return exAngle; }set { exAngle = value; Invalidate(); }}public GradientPanel(){//DoubleBuffered = true;this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;LinearGradientBrush brush = new LinearGradientBrush(ClientRectangle, exColor1, exColor2, exAngle);e.Graphics.FillRectangle(brush, ClientRectangle);}}
}

三、最终效果展示

在这里插入图片描述


更新时间

  • 2024.08.27:创建
  • 2024.08.28:找到正确的解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/411021.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东芝玉兔2.0明日震撼开售,洗衣机界的全新革命

明天,备受瞩目的东芝玉兔2.0 Pro洗烘套餐将正式开售。这款产品不仅在外观上采用了超薄全嵌的设计,梨川白的配色更是让人眼前一亮。更重要的是,它在功能上进行了全面升级,为用户提供了更全能的服务。 UFB超威跑2.0银离子除菌升级版…

JAVA中的线程池说明一

目录 1.为什么需要线程池? 2.什么是线程池? 3.标准库中的线程池 4.实现自定义线程池 1.为什么需要线程池? 线程的存在意义在于解决并发编程中进程开销过大的问题,因此引入了线程,也被称为"轻量级线程"。相比于创建进程,创建…

【学术会议征稿】第五届机械工程、智能制造与自动化技术国际学术会议(MEMAT 2024)

第五届机械工程、智能制造与自动化技术国际学术会议(MEMAT 2024) The 5th International Conference on Mechanical Engineering, Intelligent Manufacturing and Automation Technology 目前,我国自动化技术随着科学技术水平的不断提高已经…

功率器件和滤波器件的选型及测试方法

目录 一、功率器件的选型及测试方法 1.1功率器件的选型 1.2功率器件的测试方法 二、滤波器件的选型及测试方法 2.1滤波器件的选型 2.2滤波器件的测试方法 三、表格总结 一、功率器件的选型及测试方法 1.1功率器件的选型 在电子电路设计中,功率器件的选择是…

Mysql索引不当引发死锁问题

1. 前言 在并发量很低的情况下,mysql的响应时延一切正常,一旦并发量上去了,mysql就会出现死锁的情况,你有没有遇到过?到底是是什么原因导致的呢,让我们一起看看真实的案例。 2.遇到的问题 先介绍一下我们…

二进制、十进制转换进阶--小数点后的转换

上一篇文章详细介绍了整数的二进制,八进制,十进制,十六进制之间的转换 详情可前往:二进制、八进制、十进制、十六进制的相互转换-CSDN博客 这篇介绍含有小数点之间的转换 一:二进制转十进制 二进制 101.11 可以分为两部分 101 和 0.11 整数部分 101 转换的方式是从右到左,…

【文心智能体】通过低代码工作流编排创建应用《挑战奥运问答拿奖牌》

欢迎来到《小5讲堂》 这是《文心智能体平台》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 背景整体界面大模型链提示词模型 工具链HTTP请求工具 逻辑…

游戏开发设计模式之策略模式

目录 策略模式在游戏开发中的具体应用案例有哪些? 如何在Unity中实现策略模式以优化角色行为和AI策略? 策略模式与其他设计模式(如观察者模式、状态模式)在游戏开发中的比较优势是什么? 策略模式的优势 观察者模式…

【Qt笔记】QCommandLinkButton控件详解

目录 引言 一、概述 二、特性与属性 1. 属性 2. 样式 三、基本用法 1. 引入必要的头文件 2. 创建和配置 QCommandLinkButton 3. 布局管理 四、高级用法 1. 自定义绘制 2. 动态内容更新 五、代码解析示例 注意 总结 引言 QCommandLinkButton 是 Qt 框架中 QtWi…

android关于binder的简单通信过程

文章目录 简述aidl文件服务端的实现客户端的实现验证过程 简述 主要实现的是两个应用之间跨进程通信的过程,client端调用server端的具体实现,然后server端给client回调数据,详细如下所示 aidl文件 以下的文件需要在服务端与客户端都配置一…

外包干了两年,快要废了。。。

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 简单的说下,我大学的一个同学,毕业后我自己去了自研的公司,他去了外包,快两年了我薪资、技术各个方面都有了很大的…

Linux top 命令详解

top命令是Linux和Unix系统中一个非常强大的实时系统监控工具,它可以显示系统中各个进程的实时动态管理视图,类似于Windows的任务管理器。在需要诊断系统性能问题或监控资源使用情况时是非常有用的。 使用top命令 在命令行中输入top并回车,即…

Dubbo ZooKeeper Spring Boot整合

依赖配置 1. Dubbo 起步依赖 Dubbo 是一款高性能的 Java RPC 框架&#xff0c;用于快速开发高性能的服务。 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>${dubbo.ver…

非阻塞轮询

目录 前言1.options 参数2. 非阻塞轮询3. 模拟非阻塞轮询4. 非阻塞轮询 执行其它任务 前言 继上一篇文章 详谈进程等待 讲到 waitpid 系统调用&#xff0c;在该系统调用接口中还有一个 options 参数&#xff0c;本篇文章介绍 watipid 系统调用中的options 参数 以及 什么是非…

谈到这个痛点,写C的和不写C的码农都沉默了

声明&#xff1a;此篇为 ai123.cn 原创文章&#xff0c;转载请标明出处链接&#xff1a;https://ai123.cn/2246.html 作为一名在计算机软件行业工作的C工程师&#xff0c;我深知在高要求的内存管理环境中工作有多么艰难。内存分配与优化、避免内存泄漏&#xff0c;都是日常挑战…

工业相机测长仪的组成部分

关键字:工业相机测长仪,高精度测长仪,视觉测量系统,蓝鹏测控测长仪,工业测长仪, 本文介绍了蓝鹏测控公司机器视觉业务 测长仪的核心产品及技术特点&#xff0c;主要涵盖相机部分、相机防护系统、补光系统和软件部分。 &#xff08;一&#xff09;相机部分 我司的机器视觉业务…

SpringBoot 项目——抽奖系统

本项目主要实现的功能是&#xff1a;主要服务于管理员用户&#xff0c;其可圈选奖品&#xff0c;人员来创建抽奖活动&#xff0c;并进行在线抽奖&#xff0c;并可通过短信或邮件的方式通知中奖者&#xff0c;同时普通用户可查看已结束的抽奖活动的中奖结果&#xff1b; 一、项…

JAVA电子器件制造行业生产管理系统计算机毕设计算机毕业设计

项目开发意义 目前小型企业基本上是采用人工完成生产及物料的车间计划,由于企业运作是以订单驱动而非计划生产,人工手段无法及时随新订单的到来更新计划,造成计划偏离实际;各个生产单位(车间)各自为战,分别提出物料、设备、专用工具的需求,在整个企业层面上很难较精确地控制物料…

C++核心编程02——引用

摘录于B站黑马程序员提供的笔记。 1. 引用的基本使用 作用&#xff1a; 给变量起别名 语法&#xff1a; 数据类型 &别名 原名 实例&#xff1a; #include <iostream> using namespace std;int main() {// 引用基本语法// 数据类型 &别名 原名int a 10;in…

2024年8月28日(docker网络)

跨主机的容器网络连接 A>mysql B>java容器 将A -p3306:3306 端口映射就可以实现 一、docker网络 1、本地网络 bridge 所有容器连接到桥就可以使用外网,使用nat让容器可以访问外网,使用ip a s指令查看桥,所有容器连接到此桥,ip地址都是172.17.0.0/16网段,桥是启动…