Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在绘制循环时无效C# winforms

在绘制循环时无效C# winforms
EN

Stack Overflow用户
提问于 2015-03-30 09:56:47
回答 2查看 1.4K关注 0票数 0

我有一个画板,我在paint事件中这样做。我想在绘制之前删除之前的更改,但是如果我使用Invalidate()或Refresh(),它将永远重新绘制它(它是闪烁的),奇怪的是,我在任何绘制之前调用Invalidate(),所以如果它只是强制面板绘制,我应该看不到绘制

编辑:我想出来了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        void _paint(object sender, PaintEventArgs e)
    {
        Panel P = (Panel)sender;
        if (painted = false) { painted = true; P.Invalidate(); }


        Shows(30);
        painted = false;
    }

它不再闪烁了。无论如何,事实证明我从来不需要它,即使没有失效,它也会重新绘制面板。但奇怪的是,当我只隐藏面板的一部分时(无论是通过调整窗体大小还是在面板上拖动窗口),当它再次变得可见时,它会被绘制,而不是重新绘制(我可以看出,因为抗锯齿变成纯色,产生糟糕的结果),这就是为什么我认为我需要使面板无效。无效并不能阻止它的发生。我认为可能是触发了另一个事件,而不是画图。

EN

回答 2

Stack Overflow用户

发布于 2015-03-30 09:59:50

当我用不久前创建的一个程序调用Invalidate时,我遇到了控件闪烁的问题。我发现覆盖OnPaintBackGround确实起到了作用,它可能也适用于您;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    protected override void OnPaintBackground(PaintEventArgs e)
    {
        /* Override to stop the background being repainted -> this stops flashing of the text */
    }
票数 0
EN

Stack Overflow用户

发布于 2015-03-30 11:01:41

首先,以下条件缺少=符号:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (painted = false) { painted = true; P.Invalidate(); }

它应该显示为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (painted == false) { painted = true; P.Invalidate(); }

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (!painted) { painted = true; P.Invalidate(); }

其次,在许多情况下,双缓冲是一个好主意。为此,请将所有内容绘制到与控件的工作区大小相同的屏幕外位图中,然后根据需要将该位图绘制到目标控件。不要在OnPaint事件中绘制屏幕外的位图,而是在要绘制的内容发生更改时绘制!

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void PaintOffscreen()
{
    // Do whatever necessary to draw the offscreen bitmap
    ...

    // Cause the control to repaint itself. Change OnPaint to draw the bitmap only
    Invalidate();
}

void _paint(object sender, PaintEventArgs e)
{
    e.Graphics.DrawImage(offscreenBitmap, 0, 0);
}

此外,按照HorHAY的建议重写OnPaintBackground方法,以防止控件在绘制自身之前清除背景。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29343228

复制
相关文章
C# winforms 输入颜色转换颜色名
本文告诉大家如何输入颜色,如0xFFFF8000转换为 Orange 在 winforms 程序
林德熙
2022/08/04
3870
C# winforms 输入颜色转换颜色名
本文告诉大家如何输入颜色,如0xFFFF8000转换为 Orange 在 winforms 程序
林德熙
2018/09/18
6190
mybatis-plus在更新数据时乐观锁version无效
今天在使用mybatis-plus乐观锁插件时,发现乐观锁并没有生效。 查了问题发现首先需要查询出结果(也就是需要version),然后再进行更新,这样乐观锁就能起作用了。
似水的流年
2021/02/25
4.5K0
ARC无效时block的赋值
总所周知,当ARC无效时,block默认是在栈区或全局数据区,要想复制到堆区,需要一些特殊手段,这些手段在《Objective-C高级编程》都有介绍,例如将block声明为类的属性,block调用copy方法,作为函数返回值等等。 但是《高级编程》里有个地方写错了,不过也有可能书上没写清楚是否开启ARC,不过通过我的实验验证,当ARC关闭时,在类方法中给block属性赋值,如果不加上copy,还是在栈上,但是在对象外部赋值却是在堆上。具体过程看下面代码: #import <Foundation/Founda
forrestlin
2018/05/24
8140
# C#学习 -循环结构-while循环-do ...while 循环-for循环
C#程序的三大结构 顺序结构:程序的入口都是Main函数,代码从上往下,从左往右,依次执行; 分支结构:当我们的程序执行到某个位置的时候,进行条件判断,根据判断的结果来执行不同的操作; 循环结构:在满足某个条件的时候反复执行一个语句序列(循环)。
呆呆敲代码的小Y
2021/08/12
3.2K0
C# Repeater嵌套循环[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159112.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
1.1K0
C#绘制柱形图
明志德道
2023/10/21
2480
C#绘制柱形图
C# 绘制PDF嵌套表格
嵌套表格,即在一张表格中的特定单元格中再插入一个或者多个表格,使用嵌套表格的优点在于能够让内容的布局更加合理,同时也方便程序套用。下面的示例中,将介绍如何通过C#编程来演示如何插入嵌套表格到PDF文档。
Iceblue
2018/10/17
1K0
C# 绘制PDF嵌套表格
C# 绘制面形图
明志德道
2023/10/21
1720
C# 绘制面形图
C# foreach循环较for循环的优势与劣势
一、foreach循环的优势 C#支持foreach关键字,foreach在处理集合和数组相对于for存在以下几个优势: 1、foreach语句简洁 2、效率比for要高(C#是强类型检查,for循环对于数组访问的时候,要对索引的有效值进行检查) 3、不用关心数组的起始索引是几(因为有很多开发者是从其他语言转到C#的,有些语言的起始索引可能是1或者是0) 4、处理多维数组(不包括锯齿数组)更加的方便,代码如下: int[,] nVisited ={ {1,2,3}, {4,5,6
郑小超.
2018/01/26
2.6K0
R语言循环绘制柱状图
循环绘制正常与肿瘤两组的柱状图 第一步: 合并数据及 # =================================================== # # # # =================================================== rm(list=ls()) setwd('D:\\SCIwork\\F24\\OSCC\\DEG') data <- read.csv('mRNA_exprSet.csv', header = T, ro
用户1359560
2020/12/01
1.6K0
R语言循环绘制柱状图
Iocomp .NET WinForms Ultra Pack Crack
Iocomp .NET WinForms Ultra Pack–Ω578867473 The Iocomp .NET WinForms Ultra Pack controls were written in C# and take full advantage of GDI+. They produce instrumentation controls with professional looks and tight integration into Microsoft’s .NET Framework. Custom Property Editors provide fast-and-simple configuration eliminating arduous property window searching. The Ultra Pack comes with 55 Instrumentation Professional Pack Controls plus the Plot Pack Component.
全栈程序员站长
2022/09/09
1.1K0
.NET 开源免费图表组件库,Winform,WPF 通用
大家好, 我是等天黑, 今天给大家介绍一个功能完善, 性能强悍的图表组件库 ScottPlot, 当我第一次在 github 上看到这个库, 我看不懂,但我大受震撼, 这么好的项目当然要分享出来了。
全球技术精选
2021/11/30
1.7K0
.NET 开源免费图表组件库,Winform,WPF 通用
WPF初体验
前段时间无聊装了个VS2010RC, 然后试着建个了WPF的工程, 体验了一番. 刚开始没觉得这东西比WinForms方便在哪, 只是觉得它是一套跟Win32/MFC/WinForms完全不同的的东西. Win32/MFC/WinForms只要了解了消息循环机制, 理解起来就比较容易, 可WPF冒似没这套东西. 而且, HWND已经不存在于控件上了, 这是一个令人很不习惯的地方. 要知道不论什么UI库, 要想跟DirectX一起使用的话, 必须有一个HWND来指定绘制区域. 那么问题就来了: 怎么用WPF做
逍遥剑客
2018/05/23
8810
SpringMVC在Filter中使用spring注解无效
开发中遇到的问题,需要在filter中对requestURI做处理,需要用到自定义注解。 Filter的生命周期先于springMvcServlet创建所以无效 spring xml 中加入 <bean id="xxxFilter" class="xxx.xxxFilter" /> web.xml <filter> <filter-name>DelegatingFilterProxy</filter-name> <filter-class>org.springframework.w
用户1215919
2021/12/28
3640
TikZ中节点绘制的循环选项问题
在 LaTeX 中使用 TikZ 宏包绘制闭合曲线时,可以在 \draw 中使用循环选项。
hotarugali
2022/03/17
1.3K0
TikZ中节点绘制的循环选项问题
SAS-时药曲线的绘制
前段时间,小编看了一些生物等效性的资料,于是还在努力学习中的小编打算分享一段关于绘制时药曲线的程序。内容虽然比较单一,但是涉及到的SAS画图语句以及一些程序处理的细节也是值得一看的。
Setup
2019/10/20
2.7K0
WinForms 下的高性能笔迹方法
在 WPF 中可以通过 StylusPlugIn 的方式快速从触摸线程拿到触摸数据,而 WinForms 没有这个机制,但是可以通过 Microsoft.Ink 组件和 WPF 相同在 RealTimeStylus 服务拿到触摸点
林德熙
2020/04/26
5620
Iocomp .NET WinForms OPC Crack「建议收藏」
Iocomp .NET WinForms OPC 包 Iocomp .NET WinForms OPC Pack 是一款独立产品,可将 OPC 功能添加到任何 .NET 控件。Ω578867473它还包括连接到 Iocomp .NET WinForm 控件上的复杂属性的高级功能。
全栈程序员站长
2022/09/16
1.8K0
Iocomp .NET WinForms OPC Crack「建议收藏」
点击加载更多

相似问题

C# winforms绘制到位图的参数无效

34

当循环条件为dates时,图形不会绘制。c#,winForms

20

(C# Winforms)在TextBox上绘制圆

268

C# winforms在使用集合绘制到picturebox时出现问题?

22

C# - Winforms在位图上绘制

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文