private void cmbWind_SelectedIndexChanged(object sender, EventArgs e)
{
gPath.DrawImage((Bitmap)bmpWind.Clone(), 0, 0);
System.Xml.XmlDocument xmlDoc;
System.Xml.XmlNodeList xmlnl; xmlDoc = ReadXml(fileInfo[cmbWind.SelectedIndex]); xmlnl = xmlDoc.GetElementsByTagName("TFLJ");
points = new Point[xmlnl.Count];
int i = 0;
foreach (XmlElement xmle in xmlnl)
{
points[i].X = (int)(((double.Parse(xmle["EASTLONG"].InnerText.ToString())) - 105.0) * tX);
points[i].Y = (int)(215.0 - ((double.Parse(xmle["NORTHLAT"].InnerText.ToString())) * tY));
i++;
} gPath.DrawLines(new Pen(Color.Red, 1), points);
foreach (Point p in points)
{
gPath.DrawEllipse(new Pen(Color.Blue, 1), new Rectangle(p.X - 1, p.Y - 1, 2, 2));
} xmlnl = xmlDoc.GetElementsByTagName("TFXX_x0009_");
int R;
foreach (XmlElement xmle in xmlnl)
{
lstPathDesc.Items.Clear();
lstPathDesc.Items.Add(xmle["TPTIME"].InnerText.Remove(xmle["TPTIME"].InnerText.IndexOf("T"),
xmle["TPTIME"].InnerText.Length - xmle["TPTIME"].InnerText.IndexOf("T")));
lstPathDesc.Items.Add("东经" + xmle["NORTHLAT"].InnerText);
lstPathDesc.Items.Add("北纬" + xmle["EASTLONG"].InnerText);
lstPathDesc.Items.Add("气压" + xmle["CENAIRPRE"].InnerText);
lstPathDesc.Items.Add("风速" + xmle["MAXSPEED"].InnerText);
R = (int)(double.Parse(xmle["RADIISIX"].InnerText.ToString()) / 5.5);
gPath.DrawEllipse(new Pen(Color.Red, 1),
new Rectangle((int)(((double.Parse(xmle["EASTLONG"].InnerText.ToString())) - 105.0) * tX) - R / 2,
(int)(215.0 - ((double.Parse(xmle["NORTHLAT"].InnerText.ToString()))) * tY) - R / 2,
R, R)
);
}
picWind.Refresh(); }
{
gPath.DrawImage((Bitmap)bmpWind.Clone(), 0, 0);
System.Xml.XmlDocument xmlDoc;
System.Xml.XmlNodeList xmlnl; xmlDoc = ReadXml(fileInfo[cmbWind.SelectedIndex]); xmlnl = xmlDoc.GetElementsByTagName("TFLJ");
points = new Point[xmlnl.Count];
int i = 0;
foreach (XmlElement xmle in xmlnl)
{
points[i].X = (int)(((double.Parse(xmle["EASTLONG"].InnerText.ToString())) - 105.0) * tX);
points[i].Y = (int)(215.0 - ((double.Parse(xmle["NORTHLAT"].InnerText.ToString())) * tY));
i++;
} gPath.DrawLines(new Pen(Color.Red, 1), points);
foreach (Point p in points)
{
gPath.DrawEllipse(new Pen(Color.Blue, 1), new Rectangle(p.X - 1, p.Y - 1, 2, 2));
} xmlnl = xmlDoc.GetElementsByTagName("TFXX_x0009_");
int R;
foreach (XmlElement xmle in xmlnl)
{
lstPathDesc.Items.Clear();
lstPathDesc.Items.Add(xmle["TPTIME"].InnerText.Remove(xmle["TPTIME"].InnerText.IndexOf("T"),
xmle["TPTIME"].InnerText.Length - xmle["TPTIME"].InnerText.IndexOf("T")));
lstPathDesc.Items.Add("东经" + xmle["NORTHLAT"].InnerText);
lstPathDesc.Items.Add("北纬" + xmle["EASTLONG"].InnerText);
lstPathDesc.Items.Add("气压" + xmle["CENAIRPRE"].InnerText);
lstPathDesc.Items.Add("风速" + xmle["MAXSPEED"].InnerText);
R = (int)(double.Parse(xmle["RADIISIX"].InnerText.ToString()) / 5.5);
gPath.DrawEllipse(new Pen(Color.Red, 1),
new Rectangle((int)(((double.Parse(xmle["EASTLONG"].InnerText.ToString())) - 105.0) * tX) - R / 2,
(int)(215.0 - ((double.Parse(xmle["NORTHLAT"].InnerText.ToString()))) * tY) - R / 2,
R, R)
);
}
picWind.Refresh(); }
解决方案 »
- 自己写了一个构造函数, 结果SqlDataAdapter连不上, 有代码。。。
- d的值发生改变,为什么
- 请教各位大侠,我fck编辑器里的路径错误要怎样修改才是正确的路径,谢谢!
- datagridview显示父子表
- 100分请教, c# WinForm 如何运行时候,改变DataGrid 的字体背景色(依据数据值的不同)
- 就这些分了,卖血了。问个简单问题,
- C#与数据库SQL 高手
- 救救小妹啊!
- 怎么写了多线程之后比单线程运行的还慢啊?
- 求教各位大神,C#怎么用TChart控件实现缩小功能啊?
- 求软件或者源代码
- DataSet保存成XML时,出现"Specified cast is not valid."错误,急
cmbWind_SelectedIndexChanged
是读取本地WIND文件的~
用gdi+实现画图吧。。没什么复杂的 哪看不懂了?
{
gPath.DrawImage((Bitmap)bmpWind.Clone(), 0, 0);//GDI+画图
System.Xml.XmlDocument xmlDoc;
System.Xml.XmlNodeList xmlnl; xmlDoc = ReadXml(fileInfo[cmbWind.SelectedIndex]);//载入xml文件 xmlnl = xmlDoc.GetElementsByTagName("TFLJ");//获取xml节点
points = new Point[xmlnl.Count]; //定义坐标集
int i = 0;
foreach (XmlElement xmle in xmlnl)//将通过xml节点的值实例化坐标集
{
points[i].X = (int)(((double.Parse(xmle["EASTLONG"].InnerText.ToString())) - 105.0) * tX);
points[i].Y = (int)(215.0 - ((double.Parse(xmle["NORTHLAT"].InnerText.ToString())) * tY));
i++;
} gPath.DrawLines(new Pen(Color.Red, 1), points);//将坐标点连起来
foreach (Point p in points)//在坐标点上画2×2大小的方形
{
gPath.DrawEllipse(new Pen(Color.Blue, 1), new Rectangle(p.X - 1, p.Y - 1, 2, 2));
} xmlnl = xmlDoc.GetElementsByTagName("TFXX_x0009_");
int R;
foreach (XmlElement xmle in xmlnl)//通过xml文件画出“东经”"北纬"等相应的值
{
lstPathDesc.Items.Clear();
lstPathDesc.Items.Add(xmle["TPTIME"].InnerText.Remove(xmle["TPTIME"].InnerText.IndexOf("T"),
xmle["TPTIME"].InnerText.Length - xmle["TPTIME"].InnerText.IndexOf("T")));
lstPathDesc.Items.Add("东经" + xmle["NORTHLAT"].InnerText);
lstPathDesc.Items.Add("北纬" + xmle["EASTLONG"].InnerText);
lstPathDesc.Items.Add("气压" + xmle["CENAIRPRE"].InnerText);
lstPathDesc.Items.Add("风速" + xmle["MAXSPEED"].InnerText);
R = (int)(double.Parse(xmle["RADIISIX"].InnerText.ToString()) / 5.5);
gPath.DrawEllipse(new Pen(Color.Red, 1),
new Rectangle((int)(((double.Parse(xmle["EASTLONG"].InnerText.ToString())) - 105.0) * tX) - R / 2,
(int)(215.0 - ((double.Parse(xmle["NORTHLAT"].InnerText.ToString()))) * tY) - R / 2,
R, R)
);
}
picWind.Refresh(); }
{
//通过路径获得背景图片并将它显示
gPath.DrawImage((Bitmap)bmpWind.Clone(), 0, 0);
//实例化一个xml文档
System.Xml.XmlDocument xmlDoc;
//实例化一个节点集合
System.Xml.XmlNodeList xmlnl;
//读取xml文件
xmlDoc = ReadXml(fileInfo[cmbWind.SelectedIndex]);
//获得子元素列表
xmlnl = xmlDoc.GetElementsByTagName("TFLJ");
//获得坐标点的个数
points = new Point[xmlnl.Count];
int i = 0;
//通过循环得到各个点的坐标
foreach (XmlElement xmle in xmlnl)
{
points[i].X = (int)(((double.Parse(xmle["EASTLONG"].InnerText.ToString())) - 105.0) * tX);
points[i].Y = (int)(215.0 - ((double.Parse(xmle["NORTHLAT"].InnerText.ToString())) * tY));
i++;
}
//利用gdi+画出坐标线
gPath.DrawLines(new Pen(Color.Red, 1), points);
foreach (Point p in points)
{
//兰色画笔画圆和并移动矩形坐标
gPath.DrawEllipse(new Pen(Color.Blue, 1), new Rectangle(p.X - 1, p.Y - 1, 2, 2));
}
//获得节点名字属性的列
xmlnl = xmlDoc.GetElementsByTagName("TFXX_x0009_");
int R;
//通过这列获得坐标(东经XX 北纬XX 气压 XX 风速XX)的属性 画出风暴移动的路线
foreach (XmlElement xmle in xmlnl)
{
//清除xx控件的内容
lstPathDesc.Items.Clear();
//添加TPTIME点 并通过开头是T的搜索到TPTIME并删除原先的TPTIME点 不断更新TPTIME坐标
lstPathDesc.Items.Add(xmle["TPTIME"].InnerText.Remove(xmle["TPTIME"].InnerText.IndexOf("T"),
//以下代码是实现TPTIME坐标的更新
xmle["TPTIME"].InnerText.Length - xmle["TPTIME"].InnerText.IndexOf("T")));
lstPathDesc.Items.Add("东经" + xmle["NORTHLAT"].InnerText);
lstPathDesc.Items.Add("北纬" + xmle["EASTLONG"].InnerText);
lstPathDesc.Items.Add("气压" + xmle["CENAIRPRE"].InnerText);
lstPathDesc.Items.Add("风速" + xmle["MAXSPEED"].InnerText);
//获得风暴半径
R = (int)(double.Parse(xmle["RADIISIX"].InnerText.ToString()) / 5.5);
//画出风暴(圈圈)
gPath.DrawEllipse(new Pen(Color.Red, 1),
new Rectangle((int)(((double.Parse(xmle["EASTLONG"].InnerText.ToString())) - 105.0) * tX) - R / 2,
(int)(215.0 - ((double.Parse(xmle["NORTHLAT"].InnerText.ToString()))) * tY) - R / 2,
R, R)
);
}
//刷新空间,实现重绘
picWind.Refresh(); }******************************************]
因为这电脑上没有vs2003所以不能解释的很详细 不过应该能让楼主明白了吧
大家看看有没有什么错误