C#鼠标画线问题
答案:2 悬赏:60 手机版
解决时间 2021-01-31 21:21
- 提问者网友:雪舞兮
- 2021-01-31 16:17
C#鼠标画线问题
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-01-31 17:15
1、将窗体的DoubleBuffered属性设置为true;
2、添加以下变量到窗体:
private bool notStart=true;
private Point tp,sp,ep;
private List ll=new List();
private List
2、添加以下变量到窗体:
private bool notStart=true;
private Point tp,sp,ep;
private 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();
}
}
全部回答
- 1楼网友:第幾種人
- 2021-01-31 18:00
可以帮写实例,网上也有很多现成的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯