I've been working on a paint application with C#; and I want to add an option that toggles drawing an ellipse with your current brush. I've been stumped on how to make it so the size and Y location of the ellipse changes while holding the mouse down. Any ideas? Here is my code.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ZSPainter
{
public partial class Form1 : Form
{
string drawToolString;
Graphics g;
bool c = false;
bool drawEllipse = false;
Point sp = new Point(0, 0);
Point ep = new Point(0, 0);
Pen p = new Pen(Color.Black, 1);
Brush b = new SolidBrush(Color.Black);
public Form1()
{
InitializeComponent();
}
private void penToolStripMenuItem_Click(object sender, EventArgs e)
{
drawToolString = "pen";
toolString.Text = "Current Tool: Pen";
}
private void brushToolStripMenuItem_Click(object sender, EventArgs e)
{
drawToolString = "brush";
toolString.Text = "Current Tool: Brush";
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
sp = e.Location;
if(e.Button == MouseButtons.Left)
c = true;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (drawToolString == "pen" && c)
{
ep = e.Location;
g = this.CreateGraphics();
if(!drawEllipse)
g.DrawLine(p, sp, ep);
/*else
*
*------Here is where I want an ellipse to drawn if drawEllipse is true.------
*/
}
else if (drawToolString == "brush" && c)
{
ep = e.Location;
g = this.CreateGraphics();
if(!drawEllipse)
g.DrawLine(new Pen(b, 3), sp, ep);
/*else
*
*------Here is where I want an ellipse to drawn if drawEllipse is true.------
*/
}
sp = ep;
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
c = false;
}
private void ellipse_Click(object sender, EventArgs e)
{
drawEllipse = !drawEllipse;
}
}
}