如何通过用户在C#窗体中选择四个坐标点来绘制矩形,并在文本框中显示坐标点

时间:2014-04-24 11:08:19

标签: c# winforms drawing mouseevent

在我的c#windows窗体应用程序中,我试图通过在窗体中通过4个鼠标单击事件获取用户的坐标来绘制矩形,每个点一个。

这是我到目前为止所尝试的内容。

private void Form1_Click(object sender, EventArgs e)
{
    using (Graphics g = this.CreateGraphics())
    {
        Pen pen = new Pen(Color.Black, 2);
        Brush brush = new SolidBrush(this.BackColor);
        g.FillRectangle(brush, this.Bounds);  // redraws background
        g.DrawRectangle(pen,textBox1.Text,textBox2.Text,textBox3.Text,textBox4.Text);
        pen.Dispose();
        brush.Dispose();
    }
}    

1 个答案:

答案 0 :(得分:0)

你的第一个错误是使用Click处理程序。不要使用CreateGraphics。你绘制的任何东西都是不稳定的,不太可能发挥得很好。

Click事件触发时,您应该收集要绘制的点数。为表单的Paint事件添加处理程序并在那里进行绘制。事件args将提供Graphics对象供您使用。

计算矩形的单独方法也可能有助于将该工作保留在Paint处理程序之外。