❔ I have a ghost rectangle I can't get rid of in my Towers of Hanoi Windows Forms

So I used ChatGPT for a lot of the ground work and edited like I needed, and added a snap feature so the disks can't be moved freely and I can keep them from going inside eachother. The intersect handling is done using a new rectangle with the new data, but that also makes it a thing in the graphic and I have no idea how I can get rid of it.
public void Form1_MouseMove(object sender, MouseEventArgs e)
{
//Definitiv nicht zu faul für ordentliche exception catch
try
{
if (currentRectangle != -1)
{
//Die naheliegendsten X und Y Koordinaten aus den Listen werden ermittelt
int closestX = GetClosestX(e.Location.X - offset[currentRectangle].X);
int closestY = GetClosestY(e.Y - offset[currentRectangle].Y);
//Ein neues Rechteck mit den theoretischen neuen Koordinaten des ausgewählten Rechtecks wird erstellt
Rectangle newRect = new Rectangle(closestX, closestY, rectangles[currentRectangle].Width, rectangles[currentRectangle].Height);

for (int i = 0; i < rectangles.Count; i++)
{
//Wenn das neue theoretische Rechteck sich nicht mit einem der vorhandenen Rechtecke überschneidet wird das Rechteck bewegt
if (i != currentRectangle && !newRect.IntersectsWith(rectangles[i]))
{
//Invalidate setzt etwas zum redraw an
Invalidate(rectangles[currentRectangle]);
rectangles[currentRectangle] = newRect;
break;
}
}
}
DrawPegs();
}
catch { return; }
}
public void Form1_MouseMove(object sender, MouseEventArgs e)
{
//Definitiv nicht zu faul für ordentliche exception catch
try
{
if (currentRectangle != -1)
{
//Die naheliegendsten X und Y Koordinaten aus den Listen werden ermittelt
int closestX = GetClosestX(e.Location.X - offset[currentRectangle].X);
int closestY = GetClosestY(e.Y - offset[currentRectangle].Y);
//Ein neues Rechteck mit den theoretischen neuen Koordinaten des ausgewählten Rechtecks wird erstellt
Rectangle newRect = new Rectangle(closestX, closestY, rectangles[currentRectangle].Width, rectangles[currentRectangle].Height);

for (int i = 0; i < rectangles.Count; i++)
{
//Wenn das neue theoretische Rechteck sich nicht mit einem der vorhandenen Rechtecke überschneidet wird das Rechteck bewegt
if (i != currentRectangle && !newRect.IntersectsWith(rectangles[i]))
{
//Invalidate setzt etwas zum redraw an
Invalidate(rectangles[currentRectangle]);
rectangles[currentRectangle] = newRect;
break;
}
}
}
DrawPegs();
}
catch { return; }
}
2 Replies
StrangerKill
StrangerKillOP2y ago
I guess I'm more asking how else I could have it check if there's a rectangle at the target, less how to get rid of the empty rectangle
Accord
Accord2y ago
Looks like nothing has happened here. I will mark this as stale and this post will be archived until there is new activity.
Want results from more Discord servers?
Add your server