Click here to Skip to main content
15,905,874 members
Home / Discussions / C#
   

C#

 
AnswerRe: Compare string time to timer time (noobie) Pin
Gerry Schmitz28-Apr-20 6:48
mveGerry Schmitz28-Apr-20 6:48 
QuestionResize and move a drawn rectangle in win forms Pin
Member 1223285027-Apr-20 12:23
Member 1223285027-Apr-20 12:23 
AnswerRe: Resize and move a drawn rectangle in win forms Pin
Luc Pattyn27-Apr-20 13:17
sitebuilderLuc Pattyn27-Apr-20 13:17 
GeneralRe: Resize and move a drawn rectangle in win forms Pin
Member 1223285027-Apr-20 19:38
Member 1223285027-Apr-20 19:38 
Hi,
Your notes are helpful to help where to look in my code, but still I can't get it work OMG | :OMG:
I started from scratch and made the first step is just to move the rectangle, my issue now is to calculate the new starting XY, but it seems resize the rectangle when mouseUp:
C#
<pre>private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
	if (rect.Contains(e.Location))
		this.Cursor = Cursors.SizeAll;
	else
		this.Cursor = Cursors.Default;

	if (m_mouseDown && rect.Contains(e.Location))
	{
		if (e.X > StartXY.X)
		{
			EndXY.X += e.X - StartXY.X;
			EndXY.Y += e.Y - StartXY.Y;
		}
		else
		{
			EndXY.X += Math.Abs(e.X - StartXY.X);
			EndXY.Y += Math.Abs(e.Y - StartXY.Y);
		}

		StartXY = e.Location;
		Console.WriteLine("pictureBox1_MouseMove");
	}

	if (m_mouseDown && !rect.Contains(e.Location))
	{
		EndXY = e.Location;
	}

	Invalidate();
}



Complete code:
C#
public partial class Form1 : Form
{
    Rectangle rect;
    Point StartXY;
    Point EndXY;

    int x = 0;
    int y = 0;
    int height = 0;
    int width = 0;

    bool m_mouseDown = false;
    bool m_movingRect = false;


    Pen rectPen = new Pen(Color.Red, 1);

    public Form1()
    {
        InitializeComponent();
        this.DoubleBuffered = true;
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
        Graphics gObj = e.Graphics;

        x = Math.Min(StartXY.X, EndXY.X);
        y = Math.Min(StartXY.Y, EndXY.Y);

        height = Math.Abs(StartXY.X - EndXY.X);
        width = Math.Abs(StartXY.Y - EndXY.Y);

        rect = new Rectangle(x, y, height, width);
        rectPen.DashStyle = DashStyle.Dash;
        gObj.DrawRectangle(rectPen, rect);
    }

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        m_mouseDown = true;

        // Moving rectangle
        if (rect.Contains(e.Location))
        {
            m_movingRect = true;
            Console.WriteLine("m_mouseDown");
        }
        else
        {
            StartXY = e.Location;
        }
    }

    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (rect.Contains(e.Location))
            this.Cursor = Cursors.SizeAll;
        else
            this.Cursor = Cursors.Default;

        if (m_mouseDown && rect.Contains(e.Location))
        {
            if (e.X > StartXY.X)
            {
                EndXY.X += e.X - StartXY.X;
                EndXY.Y += e.Y - StartXY.Y;
            }
            else
            {
                EndXY.X += Math.Abs(e.X - StartXY.X);
                EndXY.Y += Math.Abs(e.Y - StartXY.Y);
            }

            StartXY = e.Location;
            Console.WriteLine("pictureBox1_MouseMove");
        }

        if (m_mouseDown && !rect.Contains(e.Location))
        {
            EndXY = e.Location;
        }

        Invalidate();
    }

    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        if (!m_movingRect)
        {
            EndXY = e.Location;
        }

        m_mouseDown = false;
        m_movingRect = false;
        Invalidate();
    }
}

GeneralRe: Resize and move a drawn rectangle in win forms Pin
Luc Pattyn28-Apr-20 4:50
sitebuilderLuc Pattyn28-Apr-20 4:50 
GeneralRe: Resize and move a drawn rectangle in win forms Pin
Member 1223285028-Apr-20 17:56
Member 1223285028-Apr-20 17:56 
GeneralRe: Resize and move a drawn rectangle in win forms Pin
Luc Pattyn29-Apr-20 2:30
sitebuilderLuc Pattyn29-Apr-20 2:30 
QuestionDate compare Pin
Carlos5827-Apr-20 10:42
Carlos5827-Apr-20 10:42 
AnswerRe: Date compare Pin
Luc Pattyn27-Apr-20 11:00
sitebuilderLuc Pattyn27-Apr-20 11:00 
GeneralRe: Date compare Pin
Carlos5827-Apr-20 12:31
Carlos5827-Apr-20 12:31 
GeneralRe: Date compare Pin
Luc Pattyn27-Apr-20 12:48
sitebuilderLuc Pattyn27-Apr-20 12:48 
GeneralRe: Date compare Pin
Carlos5828-Apr-20 2:19
Carlos5828-Apr-20 2:19 
GeneralRe: Date compare Pin
Luc Pattyn28-Apr-20 2:24
sitebuilderLuc Pattyn28-Apr-20 2:24 
SuggestionRe: Date compare Pin
Richard Deeming28-Apr-20 0:40
mveRichard Deeming28-Apr-20 0:40 
AnswerRe: Date compare Pin
Carlos5828-Apr-20 2:23
Carlos5828-Apr-20 2:23 
QuestionRename files in WinScp Directory using C# Pin
Sriram Valluri27-Apr-20 1:13
Sriram Valluri27-Apr-20 1:13 
AnswerRe: Rename files in WinScp Directory using C# Pin
ZurdoDev27-Apr-20 1:21
professionalZurdoDev27-Apr-20 1:21 
GeneralRe: Rename files in WinScp Directory using C# Pin
Sriram Valluri27-Apr-20 2:15
Sriram Valluri27-Apr-20 2:15 
GeneralRe: Rename files in WinScp Directory using C# Pin
ZurdoDev27-Apr-20 2:27
professionalZurdoDev27-Apr-20 2:27 
AnswerRe: Rename files in WinScp Directory using C# Pin
Jin Vincent Necesario27-Apr-20 2:36
professionalJin Vincent Necesario27-Apr-20 2:36 
GeneralRe: Rename files in WinScp Directory using C# Pin
Sriram Valluri27-Apr-20 8:07
Sriram Valluri27-Apr-20 8:07 
AnswerRe: Rename files in WinScp Directory using C# Pin
Luc Pattyn27-Apr-20 8:21
sitebuilderLuc Pattyn27-Apr-20 8:21 
GeneralRe: Rename files in WinScp Directory using C# Pin
Sriram Valluri27-Apr-20 21:21
Sriram Valluri27-Apr-20 21:21 
QuestionMulticombobox in datagridview c# Pin
Member 1347974626-Apr-20 16:12
Member 1347974626-Apr-20 16:12 
AnswerRe: Multicombobox in datagridview c# Pin
OriginalGriff26-Apr-20 19:25
mveOriginalGriff26-Apr-20 19:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.