0

私は、ユーザーがクリックするプログラムを作成しており、マウスをドラッグするとどこにでも線が引かれます。動作しますが、線が間違った場所に描画されます。パネルではなく、フォーム全体のxyを取得しているためだと思います。コードは次のとおりです。

 private void panel2_MouseDown(object sender, MouseEventArgs e)
    {
        vars.x = MousePosition.X;
        vars.y = MousePosition.Y;
        label1.Text = vars.x + ", " + vars.y;
        vars.isDrawing = true;
    }
    private void panel2_MouseMove(object sender, MouseEventArgs e)
    {
        if (vars.isDrawing == true)
        {
            if (e.Button == MouseButtons.Left)
            {
                int x2 = MousePosition.X;
                int y2 = MousePosition.Y;

                Random randomGen = new Random();
                Color randomColor = Color.FromArgb(randomGen.Next(255), randomGen.Next(255), randomGen.Next(255));
                Pen line = new Pen(randomColor, 1);
                System.Drawing.Graphics formGraphics = panel2.CreateGraphics();
                formGraphics.DrawLine(line, vars.x, vars.y, x2, y2);
            }
        }
    }
4

1 に答える 1

3

e.Xande.Yの代わりにMousePosition.Xandを使用するMousePosition.Y

于 2012-06-30T22:26:18.483 に答える