用DrawLine在winform上画了一条线,问题就出来了一堆,请指点一下。UP有粪

v_object 2005-08-05 08:40:35
用DrawLine在winform上画了一条线

1为什么当这个form最小化后,在最大化,这条线没了?????
2画这条线是为了使两个listBox里的数据建立联系,如果这条线画错了,还要能删除。现在我是这样做的,选中画过的线,判断鼠标这点的色,然后在使这块的工作区重绘。还有没有更好的办法???????
3判断鼠标这点的色,如果是画线的色,比如红色,就加载一右键菜单,点一下这菜单就把这条线清除,但是如果在这条线上点了右键但不点菜单,等点了左键后这条线就会被右键菜单绘的哪个矩形盖上一部分。怎么搞一下?????????????????????
...全文
318 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nik_Amis 2005-08-05
  • 打赏
  • 举报
回复
OnPaint
cdo 2005-08-05
  • 打赏
  • 举报
回复
你需要每次form刷新都要重绘.
JasonHeung 2005-08-05
  • 打赏
  • 举报
回复
1、用数组或者链表的方式保存画线或者其它画图指令,在OnPaint事件里处理画图指令。
其它的就是操作该指令集合。

2、方法没错;

3、如果你像第一点那么做了,就不会出现该问题。否则重绘该区域。
qpl007 2005-08-05
  • 打赏
  • 举报
回复
1、当然了,窗口的任何变化“最大化,最小化,还原,拖动”都会触发窗口的paint事件,执行重绘操作。

2、将你的线集成自Contorl类,封装成对象(控件),不要在窗口里直接画。要删除时选择该控件,删除之。

3、同1,需要执行重绘
李天平 2005-08-05
  • 打赏
  • 举报
回复
1.在最大化后,仍需重绘.
2.重画一条同样的线,但颜色是和背景色相同.或者 改变这条线的颜色成背景色.
3.菜单显示完了,仍需重绘.
topycsdn 2005-08-05
  • 打赏
  • 举报
回复
根本不需要那么麻烦

直接在窗口的“重绘”事件里画线就OK了。

111,125

社区成员

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

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

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