永发信息网

C#鼠标画线问题

答案:2  悬赏:60  手机版
解决时间 2021-01-31 21:21
C#鼠标画线问题
最佳答案
1、将窗体的DoubleBuffered属性设置为true;
2、添加以下变量到窗体:
private bool notStart=true;
private Point tp,sp,ep;
private List ll=new List();
private List> l=new List>();
3、依次为窗体的MouseDown、MouseMove、Paint、MouseDoubleClick事件添加以下处理函数:
void MainFormMouseDown(object sender, MouseEventArgs e)
{
tp=new Point(e.X,e.Y);
ll.Add(tp);
if(MouseButtons.Left==e.Button)
{
sp=tp;
if(notStart)
{
l.Add(ll);
notStart=false;
}
}
else
{
if(!notStart)
{
ll=new List();
notStart=true;
}
}
Invalidate();
}

void MainFormMouseMove(object sender, MouseEventArgs e)
{
ep=new Point(e.X,e.Y);
Invalidate();
}

void MainFormPaint(object sender, PaintEventArgs e)
{
Point p;
Graphics g=e.Graphics;

for(int i=0;i {
p=l[i][0];
for(int j=1;j {
g.DrawLine(Pens.Red,p,l[i][j]);
p=l[i][j];
}
}
if(!notStart)
{
g.DrawLine(Pens.Red,sp,ep);
}
}

void MainFormMouseDoubleClick(object sender, MouseEventArgs e)
{
if(MouseButtons.Left==e.Button)
{
l.Clear();
ll.Clear();
notStart=true;
Invalidate();
}
}
全部回答
可以帮写实例,网上也有很多现成的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
和顺旅馆(邯郸大名县)地址在什么地方,我要处
在地图上怎么找70°n~80°n,157°w~81°e的范
英语四级发下来的成绩单的照片好模糊啊照片像
金安宾馆(邯郸大名县)地址在什么地方,想过去
商贸城旅馆(邯郸大名县)地址好找么,我有些事
【纹组词】根据字义分别组词花:1.花朵: 2.花
2000平米钢结构大概多少钱
步步高学习机里的课件老闪退
网站类型是DEDECMS、ZBLOG、PHPCMS、WORDPRES
魏晨,周杰伦,韩红,王力宏,张杰,周笔畅,
金福旅馆(邯郸大名县)地址有知道的么?有点事
动物的信息交流方式主要有动作、声音、气味等
好运来旅馆(邯郸大名县)地址在哪,我要去那里
答应了去接网友,却不能做到,因为家人都不让
急急急,快递员送错东西到我家,快递单上也是
推荐资讯
1968年女性,1965年男性分别要到那一年才能退
2009年9 月11日,美国总统奥巴马宣布对中国轮
素组的意思是什么啊?知道的请说下!
为什么农村的光棍越来越多,剩男的问题如何解
为什么元素会有可变化合价?介于本人比较笨,
骑士的法则翻译成英文怎么写
幽墨的意思是什么啊?知道的请说下!
越野摩托车防风镜和滑雪镜有啥区别
騞然的意思是什么啊?知道的请说下!
手机能手不能发短信
个人缴纳社保划不划算?现在个人每年缴纳最低
求一个QQ苦笑表情
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?