Panel控件重绘

yaohuang306 2010-10-15 05:29:49
每次打开一个data文件(按钮),都画一次图。但是这个图在被遮挡或者最小化后就变黑了。。。
好多人说的在paint事件里画,因为我要先读取数据再画,不知道怎么实现。(不知道我说明白了没有)
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaohuang306 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 starts_2000 的回复:]
自定义一个Panel控件如下:

C# code
public class DataPanel : Panel
{
private object _data;//object 可以换成自己定义的数据结构

public DataPanel()
: base()
{
}

……
[/Quote]
多谢楼上这位,一看就大师!但我用的c++.net 辛苦辛苦,我看看有没有什么灵感可以从你这得到。
starts_2000 2010-10-17
  • 打赏
  • 举报
回复
自定义一个Panel控件如下:
public class DataPanel : Panel
{
private object _data;//object 可以换成自己定义的数据结构

public DataPanel()
: base()
{
}

public object Data//object 可以换成自己定义的数据结构
{
get { return _data; }
set
{
_data = value;
base.Invalidate();
}
}

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);

//根据数据绘制
}
}


点击按钮时Data = 数据。
yaohuang306 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shaofei830927 的回复:]

paint 是不停的画的 或者说是在内部构成发生改变的时候回重画 当你确定需要重绘的时候 用 this.invdate(); 重绘一下 具体怎么实现 因为我实在看不懂你想达到什么效果 所以也没法说
可以加我QQ67780558 我们讨论下
[/Quote]
问题补充:Form界面下,点个按钮click事件下,开始读取数据,并且将数据绘图至panel所在的区域内。但是这个区域被其他的界面遮挡(比如qq窗口啊,word文档啊)或者Form最下化以后,再将form弹出来panel区域就是白色的。需要有个命令告诉windows说要重新绘制一下这个被遮挡的图片。我现在不知道用什么命令或者方法。
yaohuang306 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shaofei830927 的回复:]

paint 是不停的画的 或者说是在内部构成发生改变的时候回重画 当你确定需要重绘的时候 用 this.invdate(); 重绘一下 具体怎么实现 因为我实在看不懂你想达到什么效果 所以也没法说
可以加我QQ67780558 我们讨论下
[/Quote]
多谢多谢!!那我加你qq哈
shaofei830927 2010-10-15
  • 打赏
  • 举报
回复
paint 是不停的画的 或者说是在内部构成发生改变的时候回重画 当你确定需要重绘的时候 用 this.invdate(); 重绘一下 具体怎么实现 因为我实在看不懂你想达到什么效果 所以也没法说
可以加我QQ67780558 我们讨论下

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧