ATMLWorkBench.Forms.SignalContainer.SignalModelContainer_MouseMove C# (CSharp) Метод

SignalModelContainer_MouseMove() приватный Метод

private SignalModelContainer_MouseMove ( object sender, MouseEventArgs e ) : void
sender object
e MouseEventArgs
Результат void
        void SignalModelContainer_MouseMove(object sender, MouseEventArgs e)
        {
            if( e.Button == MouseButtons.Left )
            {
                if( activeSignal != null && ClientRectangle.Contains( e.X, e.Y ) )
                 {
                    Rectangle r1 = activeSignal.Bounds;
                    activeSignal.Location = new Point(e.X - activeLocationX, e.Y - activeLocationY);
                    int left = Math.Max( 0, Math.Min(r1.Left, activeSignal.Location.X) );
                    int top = Math.Max( 0, Math.Min(r1.Top, activeSignal.Location.Y) );
                    int right = Math.Max(left + r1.Width, activeLocationX + activeSignal.Width);
                    int bottom = Math.Max(top + r1.Height, activeLocationY + activeSignal.Height);
                    Rectangle r2 = new Rectangle(left, top, right+10, bottom+10);
                    Region region = new Region(r1);
                    region.Union(r2);
                    region.Union(activeSignal.getAffectedRegion());
                    Invalidate(region);
                    Update();
                    activeLocationX = e.X - activeSignal.Location.X;
                    activeLocationY = e.Y - activeSignal.Location.Y;
                }
            }
        }