загрузка изображения, рисование на нем фигур нажатием кнопки, рисование линий мышью - PullRequest
0 голосов
/ 09 декабря 2011

Я хочу загрузить изображение (например, на панели) и пометить края изображения, используя функции, которые у меня есть, и нарисовать линии краев на изображении, нажав кнопку. После этого я хочу нарисоватьдополнительные линии на том же изображении с помощью мыши. Я также хочу иметь возможность стирать нарисованные линии с помощью мыши, не стирая изображение позже.Я не знаю, какую функцию мне следует использовать в каждом случае. Одним из способов может быть то, что я устанавливаю backgroundImage панели с моим изображением и использую функцию рисования для рисования линий exta _drawn mouse.if я использую этот метод, затемфункцию, которую я должен использовать, чтобы нарисовать линииdge_drawn, нажав кнопку?Есть ли способ лучше?Пожалуйста, ведите меня. Спасибо заранее.

1 Ответ

0 голосов
/ 09 декабря 2011

см. Ниже код .. надеюсь, это поможет вам

Point startPoint = new Point();
bool dragging = false;

int testOne = 30;
int testTwo = 30;

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
    if (dragging)
    {
        int diffX = (pictureBox1.PointToClient(e.Location).X - startPoint.X);
        int diffY = (pictureBox1.PointToClient(e.Location).Y - startPoint.Y);

        label9.Text = diffX.ToString();   //Works, shows desired result
        label10.Text = diffY.ToString();  //also works fine

        testOne = (testOne + diffX); //Issue here
        testTwo = (testTwo + diffY); //and here

        label11.Text = (testOne).ToString(); //Unexpected results output
        label12.Text = (testTwo).ToString(); 
    }
}

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
    if (!dragging) //Incase the mouse down was repeating, it's not
    {
        startPoint = pictureBox1.PointToClient(e.Location);
        dragging = true;
    }
}

private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
    if (dragging)
        dragging = false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...