Ciao a tutti, so che è come cercare un ago in un pagliaio ma ho il seguente codice che permette di tracciare correttamente una Linea su una Form:
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace testLINEinC
{
public partial class Form1 : Form
{
private ArrayList Lines = new ArrayList();
private Point EndPoint;
private Point StartPoint;
private struct Line
{
public Point StartPos;
public Point EndPos;
public Line(Point pt1, Point pt2)
{
StartPos = pt1;
EndPos = pt2;
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
Invalidate();
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if ((e.Button == MouseButtons.Left))
{
StartPoint = new Point(e.X, e.Y);
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
if ((e.Button == MouseButtons.Left))
{
EndPoint = new Point(e.X, e.Y);
Lines.Add(new Line(StartPoint, EndPoint));
}
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
foreach (Line Item in Lines)
{
e.Graphics.DrawLine(Pens.Blue, Item.StartPos, Item.EndPos);
}
if ((Control.MouseButtons == MouseButtons.Left))
{
e.Graphics.DrawLine(Pens.Blue, StartPoint, this.PointToClient(Cursor.Position));
}
}
}
}
funziona perfettamente su una Form come area di lavoro, non capisco perchè se ci metto una pictureBox come area di lavoro invece non funziona....
O meglio, tracci una una linea e non compare nulla... riduci a icona la form, la ingrandisci e magicamente la linea sulla PictureBox c'è.... come mai questo strano comportamento?

Rispondi quotando
