代码
编写一个程序,接收用户输入的2组数据,每组数据有两个数据,分别是一个点的x坐标和y坐标,在窗口中画出以这两点为起点终点的直线,然后计算两个点之间的距离,输出在屏幕中

主要代码段分析

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;


namespace drawline

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}


private void button1_Click(object sender, EventArgs e)

{

try

{

string j;

int aa, bb, cc, dd;

j
= a.Text;

aa
= Convert.ToInt32(j);

j
= b.Text;

bb
= Convert.ToInt32(j);

j
= c.Text;

cc
= Convert.ToInt32(j);

j
= d.Text;

dd
= Convert.ToInt32(j);


Point[] pointArray
= { new Point(aa, bb), new Point(cc, dd) };//定义直线起点和终点

Graphics g
= this.CreateGraphics();

Pen redpen
= new Pen(Color.Red,5);//新建画笔 宽度为5

g.DrawLines(redpen, pointArray);
//画直线



double length = Math.Sqrt((cc - aa) * (cc - aa) + (dd - aa) * (dd - aa));

//计算直线长度

textBox1.Text
=Convert.ToString ( length);//将直线长度显示在文本框textbox1里


MessageBox.Show(
"你所画的直线长度是:" + length);//显示直线长度的消息框



}


catch(System .Exception x)

{

MessageBox .Show (
"请输入数值!\n");//提示输入的消息框

}



}


private void button2_Click(object sender, EventArgs e)

{

a.Text
= "";//清空各文本框

b.Text
= "";

c.Text
= "";

d.Text
= "";

textBox1.Text
= "";

Graphics g
= this.CreateGraphics();

g.Clear (Color.White );
//清除整个背景面,并以指定颜色(白色)填充


}


}

}


四、运行结果及分析

1.运行结果



2.结果分析和说明


① 程序初始化界面如图一所示.

② 若没有输入数值直接按确定则提示:请输入数值.如图二所示.

③ 输入直线起点终点坐标后,画出直线,并计算出直线长度,分别显示在textbox和messagebox中,如图三所示.

④ 按清楚输入后.屏幕初始化如图一所示.

五、实验小结

1.使用Convert.ToInt32方法之前,被转换的数要先赋初值,否则会提示出错

2.刚开始,画新的直线的时候没有清除旧的直线,最后多条直线在一个背景面中显示.后来使用Clear方法 清除整个背景面,并以指定颜色填充,即每次点清除输入后,不仅清除文本框内容,还对背景面进行清除.


六、 参考文献和相关资料

C#程序设计大学教程

 

posted on 2010-04-08 02:47  sn_wolf  阅读(1491)  评论(0编辑  收藏  举报