1

調整専用のパネルに描画されたラスターがあります。このラスターでは、ユーザーは単純な循環を構築できます。ユーザーが接続を調整できるように、いくつかの機能を追加しました。問題は、それ以降のすべてが塗りつぶされていることです。そのようなことをする可能性はありますか?私が言いたいことがより明確になるように、2 つのスクリーンショットを追加しました。

http://www.pic-upload.de/gal-337018/f5lsv1/1.html

コード:

private void UserMovesButton(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Left)
    {
        if (FirstFinished != 0)
        {
            dummy.Color = MainPanel.BackColor;
            Start = connectionButtons[ActualIndex - 1].Location;
            drawline();
            Start = connectionButtons[ActualIndex + 1].Location;
            drawline();
        }
        dummy.Color = Color.Black;
        Control controlToMove = (Control)sender;
        controlToMove.BringToFront();
        controlToMove.Location = new Point(controlToMove.Location.X + e.Location.X - 10,
            controlToMove.Location.Y + e.Location.Y - 10);
        {
            Start = connectionButtons[ActualIndex - 1].Location;
            Stop.X = controlToMove.Location.X + e.Location.X - 10;
            Stop.Y = controlToMove.Location.Y + e.Location.Y - 10;
            FirstFinished = 1;
            drawline();
            Start = connectionButtons[ActualIndex + 1].Location;
            drawline();
            Thread.Sleep(10);
        }
    }
}

(接続ボタンは、ボタンを含むリストです)

z軸の使用についてはすでに考えましたが、drawlineはそのようなものをサポートしていません。

4

1 に答える 1

2

あなたのdrawLine()メソッドが何をするのかはわかりませんが、それを使用してUserControl. それは正しいアプローチではありません。から派生させ、 OnPaint()UserControlメソッドをオーバーライドし、そこですべてのペイントを行う必要があります (一番下のオブジェクトから始めます)。データ構造に変更を加えた後に が確実に呼び出されるようにするには、 のまたはメソッドを使用できます。OnPaint()Invalidate()Refresh()UserControl

于 2013-03-05T12:00:19.973 に答える