分享
 
 
 

柱形图 和 折线图 饼形图控件(原创)

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

using System;

using System.Collections;

using System.ComponentModel;

using System.Drawing;

using System.Data;

using System.Windows.Forms;

using System.Xml ;

namespace ChartControl

{

/// <summary>

/// ChartControl 1.0 的摘要说明。此控件是画图的,根据xml文档的数据生成图表。

/// 目前能够画2维图和3维图 柱形图 和 折线图 饼形图。韩永矗5Apr2005制作。

/// 柱形图请将xml文件中的“add key='DiagramType'”修改为histogram

/// 折线图请将xml文件中的“add key='DiagramType'”修改为flexdiagram

/// 饼形图请将xml文件中的“add key='DiagramType'”修改为cakydiagram

/// xml文件不能修改名字,需要和你的程序执行文件在同一个目录。

/// </summary>

public class ChartControl : System.Windows.Forms.UserControl

{

private System.Windows.Forms.Label label1;

private System.Windows.Forms.Label label2;

private System.Windows.Forms.Label label3;

/// <summary>

/// 必需的设计器变量。

/// </summary>

private System.ComponentModel.Container components = null;

public ChartControl()

{

// 该调用是 Windows.Forms 窗体设计器所必需的。

InitializeComponent();

// TODO: 在 InitComponent 调用后添加任何初始化

}

/// <summary>

/// 清理所有正在使用的资源。

/// </summary>

protected override void Dispose( bool disposing )

{

if( disposing )

{

if( components != null )

components.Dispose();

}

base.Dispose( disposing );

}

#region 组件设计器生成的代码

/// <summary>

/// 设计器支持所需的方法 - 不要使用代码编辑器

/// 修改此方法的内容。

/// </summary>

private void InitializeComponent()

{

this.label1 = new System.Windows.Forms.Label();

this.label2 = new System.Windows.Forms.Label();

this.label3 = new System.Windows.Forms.Label();

this.SuspendLayout();

//

// label1

//

this.label1.Location = new System.Drawing.Point(104, 16);

this.label1.Name = 'label1';

this.label1.Size = new System.Drawing.Size(160, 24);

this.label1.TabIndex = 0;

this.label1.Text = 'label1';

//

// label2

//

this.label2.Location = new System.Drawing.Point(8, 56);

this.label2.Name = 'label2';

this.label2.TabIndex = 1;

this.label2.Text = 'label2';

//

// label3

//

this.label3.Location = new System.Drawing.Point(288, 320);

this.label3.Name = 'label3';

this.label3.TabIndex = 2;

this.label3.Text = 'label3';

//

// ChartControl

//

this.BackColor = System.Drawing.Color.White;

this.Controls.Add(this.label3);

this.Controls.Add(this.label2);

this.Controls.Add(this.label1);

this.Name = 'ChartControl';

this.Size = new System.Drawing.Size(448, 360);

this.Load += new System.EventHandler(this.ChartControl_Load);

this.ResumeLayout(false);

}

#endregion

#region 读写xml文件的几个小函数,2005 4 2 by hyc

public void SetXmlFileValue(string xmlPath,string AppKey,string AppValue)//写xmlPath是文件路径+文件名,AppKey是 Key Name,AppValue是Value

{

XmlDocument xDoc = new XmlDocument();

xDoc.Load(xmlPath);

XmlNode xNode;

XmlElement xElem1;

XmlElement xElem2;

xNode = xDoc.SelectSingleNode('//appSettings');

xElem1 = (XmlElement)xNode.SelectSingleNode('//add[@key='' + AppKey + '']');

if ( xElem1 != null )

{

xElem1.SetAttribute('value',AppValue);

}

else

{

xElem2 = xDoc.CreateElement('add');

xElem2.SetAttribute('key',AppKey);

xElem2.SetAttribute('value',AppValue);

xNode.AppendChild(xElem2);

}

xDoc.Save(xmlPath);

}

public void GetXmlFileValue(string xmlPath,string AppKey,ref string AppValue)//读xmlPath是文件路径+文件名,AppKey是 Key Name,AppValue是Value

{

XmlDocument xDoc = new XmlDocument();

xDoc.Load(xmlPath);

XmlNode xNode;

XmlElement xElem1;

xNode = xDoc.SelectSingleNode('//appSettings');

xElem1 = (XmlElement)xNode.SelectSingleNode('//add[@key='' + AppKey + '']');

if ( xElem1 != null )

{

AppValue=xElem1.GetAttribute ('value');

}

else

{

// MessageBox.Show ('There is not any information!');

}

}

#endregion

#region 变量声明,2005 4 4 by hyc

public int FormHeight;

public int FormWidth;

public int Num=1;

public int Max=1;

public int Min=1;

public int JNum=1;//维数

public int polebold;

public int HeightXS=100;//高度系数

public int[] StartAngl=new int [100];//开始角度

public int[] SweepAngl=new int [100]; //跨越弧度

public int AllSweep;

public int KuanDu;

public int[,] X=new int [100,100];

public int [,] Y=new int[100,100];

public int[,] YY=new int [100,100];

public string[] TypeName=new string [100];

public string[,] TypeValue=new string [100,100];

public string appvalue;

public string PathFileName=System.Windows .Forms .Application.StartupPath +'\\XMLChart.xml';

System.Windows .Forms .Label [] TypeNameLabel;

System.Windows .Forms .Label [,] TypeValueLabel;

#endregion

#region 自定义函数,2005 4 4 by hyc

public void AllBegain()//All 初始化

{

FormHeight=this.Height ;

FormWidth=this.Width ;

GetXmlFileValue(PathFileName,'DiagramName',ref appvalue);

label1.Text =appvalue+'(此图表控件是测试版)';

GetXmlFileValue(PathFileName,'YName',ref appvalue);

label2.Text =appvalue;

GetXmlFileValue(PathFileName,'XName',ref appvalue);

label3.Text =appvalue;

label1.AutoSize =true;

label1.Top =5;

label1.Left =(FormWidth-label1.Width )/2;

label2.AutoSize =true ;

label3.AutoSize=true;

label2.Top =15;

label2.Left =5;

label3.Top=FormHeight-10;

label3.Left=FormWidth-label3.Width-5;

GetXmlFileValue(PathFileName,'Num',ref appvalue);

Num=Int32.Parse (appvalue);

GetXmlFileValue(PathFileName,'JNum',ref appvalue);

JNum=Int32.Parse (appvalue);

}

public void HistogramBegain()//Histogram 初始化

{

for(int i=1;i<=Num;i++)

{

GetXmlFileValue(PathFileName,'ID'+i.ToString (),ref TypeName[i]);

for(int j=1;j<=JNum;j++)

{

GetXmlFileValue(PathFileName,'ID'+j.ToString()+'Num'+i.ToString (),ref TypeValue[j,i]);

}

}

polebold=FormWidth*2/(3*Num*JNum);

Max=Int32.Parse (TypeValue[1,1]);

Min=Int32.Parse (TypeValue[1,1]);

for(int i=1;i<=Num;i++)

{

for(int j=1;j<=JNum;j++)

{

if(Int32.Parse (TypeValue[j,i])>Max)

{

Max=Int32.Parse (TypeValue[j,i]);

}

if(Int32.Parse (TypeValue[j,i])<Min)

{

Min=Int32.Parse (TypeValue[j,i]);

}

}

}

for(int i=1;i<100;i++)

{

if(Max>(FormHeight-50))

{

HeightXS=HeightXS/2;

Max=Max/2;

}

if(Max<(FormHeight-50)/2)

{

HeightXS=HeightXS*2;

Max=Max*2;

}

if(Max<(FormHeight-50) && Max>(FormHeight-50)/2)

{

break;

}

}

for(int i=1;i<=Num;i++)

{

for(int j=1;j<=JNum;j++)

{

X[j,i]=(label3.Left -(label2.Left +label2.Width ))/Num*i-(label2.Left +label2.Width )+(polebold+1)*(j-1)-label3.Width ;//????

Y[j,i]=label3.Top-5-(Int32.Parse (TypeValue[j,i])*HeightXS/100);

YY[j,i]=Int32.Parse (TypeValue[j,i]);

YY[j,i]=YY[j,i]*HeightXS/100;

}

}

TypeNameLabel = new System.Windows .Forms.Label[100];

for(int i=1;i<=Num;i++)

{

TypeNameLabel[i]=new Label ();

TypeNameLabel[i].Top =label3.Top ;

TypeNameLabel[i].Text =TypeName[i];

TypeNameLabel[i].AutoSize =true;

TypeNameLabel[i].Left =X[1,i]+polebold*JNum/2;

this.Controls .Add (TypeNameLabel[i]);

}

TypeValueLabel = new System.Windows .Forms.Label[100,100];

for(int i=1;i<=Num;i++)

{

for(int j=1;j<=JNum;j++)

{

TypeValueLabel[j,i]=new Label ();

TypeValueLabel[j,i].Top =Y[j,i]-20 ;

TypeValueLabel[j,i].Text =TypeValue[j,i];

TypeValueLabel[j,i].AutoSize =true;

TypeValueLabel[j,i].Left =X[j,i];

this.Controls .Add (TypeValueLabel[j,i]);

}

}

}

public void FlexDiagramBegain()//Flex Diagram 初始化

{

for(int i=1;i<=Num;i++)

{

GetXmlFileValue(PathFileName,'ID'+i.ToString (),ref TypeName[i]);

for(int j=1;j<=JNum;j++)

{

GetXmlFileValue(PathFileName,'ID'+j.ToString()+'Num'+i.ToString (),ref TypeValue[j,i]);

}

}

TypeNameLabel = new System.Windows .Forms.Label[100];

for(int i=1;i<=Num;i++)

{

TypeNameLabel[i]=new Label ();

TypeNameLabel[i].Top =label3.Top ;

TypeNameLabel[i].Text =TypeName[i];

TypeNameLabel[i].AutoSize =true;

TypeNameLabel[i].Left =(label3.Left -(label2.Left +label2.Width ))/Num*i-(label2.Left +label2.Width )-TypeNameLabel[i].Width /2;

this.Controls .Add (TypeNameLabel[i]);

}

Max=Int32.Parse (TypeValue[1,1]);

Min=Int32.Parse (TypeValue[1,1]);

for(int i=1;i<=Num;i++)

{

for(int j=1;j<=JNum;j++)

{

if(Int32.Parse (TypeValue[j,i])>Max)

{

Max=Int32.Parse (TypeValue[j,i]);

}

if(Int32.Parse (TypeValue[j,i])<Min)

{

Min=Int32.Parse (TypeValue[j,i]);

}

}

}

for(int i=1;i<100;i++)

{

if(Max>(FormHeight-50))

{

HeightXS=HeightXS/2;

Max=Max/2;

}

if(Max<(FormHeight-50)/2)

{

HeightXS=HeightXS*2;

Max=Max*2;

}

if(Max<(FormHeight-50) && Max>(FormHeight-50)/2)

{

break;

}

}

for(int i=1;i<=Num;i++)

{

for(int j=1;j<=JNum;j++)

{

X[j,i]=(label3.Left -(label2.Left +label2.Width ))/Num*i-(label2.Left +label2.Width );

Y[j,i]=label3.Top-5-(Int32.Parse (TypeValue[j,i])*HeightXS/100);

YY[j,i]=Int32.Parse (TypeValue[j,i]);

YY[j,i]=YY[j,i]*HeightXS/100;

}

}

TypeValueLabel = new System.Windows .Forms.Label[100,100];

for(int i=1;i<=Num;i++)

{

for(int j=1;j<=JNum;j++)

{

TypeValueLabel[j,i]=new Label ();

TypeValueLabel[j,i].Top =Y[j,i]-20 ;

TypeValueLabel[j,i].Text =TypeValue[j,i];

TypeValueLabel[j,i].AutoSize =true;

TypeValueLabel[j,i].Left =(label3.Left -(label2.Left +label2.Width ))/Num*i-(label2.Left +label2.Width )-TypeValueLabel[j,i].Width /2;

this.Controls .Add (TypeValueLabel[j,i]);

}

}

}

public void CakyDiagramBegain()//饼形图初始化

{

for(int i=1;i<=Num;i++)

{

GetXmlFileValue(PathFileName,'ID'+i.ToString (),ref TypeName[i]);

GetXmlFileValue(PathFileName,'ID1Num'+i.ToString (),ref TypeValue[1,i]);

}

for(int i=1;i<=Num;i++)

{

GetXmlFileValue(PathFileName,'ID1Num'+i.ToString (),ref appvalue);

SweepAngl[i]=Int32.Parse (appvalue);

}

AllSweep=0;

for(int i=1;i<=Num;i++)

{

AllSweep=AllSweep+SweepAngl[i];

}

for(int i=1;i<=Num;i++)

{

SweepAngl[i]=(SweepAngl[i]*360)/AllSweep;

}

//去掉白边

int tempSw;

for(int j=1;j<360;j++)

{

tempSw=0;

for(int i=1;i<=Num;i++)

{

tempSw=tempSw+SweepAngl[i];

}

if(tempSw<360)

{

for(int k=1;k<=360-tempSw;k++)

{

if(k<Num)

{

SweepAngl[k]++;

}

else

{

break;

}

}

}

if(tempSw>=360)

{

break;

}

}

StartAngl[1]=0;

int tempAllSweep;

for(int i=2;i<=Num;i++)

{

tempAllSweep=0;

for(int j=1;j<=i-1;j++)

{

tempAllSweep=tempAllSweep+SweepAngl[j];

}

StartAngl[i]=tempAllSweep;

}

if(FormWidth>=FormHeight)

{

KuanDu=FormHeight*2/3;

}

else

{

KuanDu=FormWidth*2/3;

}

double Angle;

TypeNameLabel = new System.Windows .Forms.Label[100];

for(int i=1;i<=Num;i++)

{

Angle=(360-StartAngl[i]+90-SweepAngl[i]/2)*3.141592653579/180;

TypeNameLabel[i]=new Label ();

TypeNameLabel[i].Top =(int)((KuanDu+60)/2* Math.Cos (Angle))+(FormHeight/6+KuanDu/2);

TypeNameLabel[i].Text =TypeName[i];

TypeNameLabel[i].AutoSize =true;

TypeNameLabel[i].Left =(int)((KuanDu+60)/2* Math.Sin (Angle))+(FormWidth/6+KuanDu/2);

this.Controls .Add (TypeNameLabel[i]);

}

TypeValueLabel = new System.Windows .Forms.Label[100,100];

string tempstr1;

for(int i=1;i<=Num;i++)

{

tempstr1=(Int32.Parse (TypeValue[1,i])*1.0/AllSweep*100.0).ToString()+' ';

TypeValueLabel[1,i]=new Label ();

TypeValueLabel[1,i].Top =TypeNameLabel[i].Top ;

TypeValueLabel[1,i].Text =tempstr1.Substring(0,5)+'%';

TypeValueLabel[1,i].AutoSize =true;

TypeValueLabel[1,i].Left =TypeNameLabel[i].Left+TypeNameLabel[i].Width +2;

this.Controls .Add (TypeValueLabel[1,i]);

}

}

#endregion

private void ChartControl_Load(object sender, System.EventArgs e)

{

AllBegain();

}

#region Draw Diagram函数,2005 4 4 by hyc

protected override void OnPaint(PaintEventArgs paintEvent)

{

Graphics g = paintEvent.Graphics;

SolidBrush brush=new SolidBrush (Color.Blue );

Pen pen=new Pen (Color.Black);

Pen pen2=new Pen (Color.DarkGray );

SolidBrush[] bb;

bb=new SolidBrush [100];

bb[1]=new SolidBrush (Color.DarkRed);

bb[2]=new SolidBrush (Color.DarkSlateBlue);

bb[3]=new SolidBrush (Color.DarkGray);

bb[4]=new SolidBrush (Color.YellowGreen);

bb[5]=new SolidBrush (Color.DarkSalmon);

bb[6]=new SolidBrush (Color.DarkOrange);

bb[7]=new SolidBrush (Color.LightYellow);

bb[8]=new SolidBrush (Color.SlateBlue);

bb[9]=new SolidBrush (Color.Black);

bb[10]=new SolidBrush (Color.YellowGreen);

bb[11]=new SolidBrush (Color.DarkSeaGreen);

bb[12]=new SolidBrush (Color.DarkSlateGray);

bb[13]=new SolidBrush (Color.DarkTurquoise);

bb[14]=new SolidBrush (Color.DarkViolet);

bb[15]=new SolidBrush (Color.DeepPink);

Pen[] pp;

pp=new Pen [100];

pp[1]=new Pen (Color.DarkRed);

pp[2]=new Pen (Color.DarkSlateBlue);

pp[3]=new Pen (Color.DarkGray);

pp[4]=new Pen (Color.YellowGreen);

pp[5]=new Pen (Color.DarkSalmon);

pp[6]=new Pen (Color.DarkOrange);

pp[7]=new Pen (Color.LightYellow);

pp[8]=new Pen (Color.SlateBlue);

pp[9]=new Pen (Color.Black);

pp[10]=new Pen (Color.YellowGreen);

pp[11]=new Pen (Color.DarkSeaGreen);

pp[12]=new Pen (Color.DarkSlateGray);

pp[13]=new Pen (Color.DarkTurquoise);

pp[14]=new Pen (Color.DarkViolet);

pp[15]=new Pen (Color.DeepPink);

GetXmlFileValue(PathFileName,'DiagramType',ref appvalue);

switch(appvalue)

{

case 'histogram'://柱形图

HistogramBegain();

g.DrawLine (pen,label2.Left +label2.Width ,label3.Top-5,label3.Left+label3.Width,label3.Top-5);

g.DrawLine (pen,label2.Left +label2.Width ,label3.Top-5,label2.Left +label2.Width ,label2.Top-5);

for(int i=1;i<=Num;i++)

{

for(int j=1;j<=JNum;j++)

{

g.FillRectangle(bb[j],X[j,i],Y[j,i],polebold,YY[j,i]);

}

}

break;

case'flexdiagram'://折线图

FlexDiagramBegain();

g.DrawLine (pen,label2.Left +label2.Width ,label3.Top-5,label3.Left+label3.Width,label3.Top-5);

g.DrawLine (pen,label2.Left +label2.Width ,label3.Top-5,label2.Left +label2.Width ,label2.Top-5);

for(int i=1;i<Num;i++)

{

for(int j=1;j<=JNum;j++)

{

g.DrawLine (pp[j],X[j,i],Y[j,i],X[j,i+1],Y[j,i+1]);

}

}

for(int i=1;i<=Num;i++)

{

for(int j=1;j<=JNum;j++)

{

g.DrawLine(pen2,X[j,i],Y[j,i],X[j,i],label3.Top-5);

}

}

break;

case'cakydiagram'://饼形图

CakyDiagramBegain();

g.DrawLine (pen,label2.Left +label2.Width ,label3.Top-5,label3.Left+label3.Width,label3.Top-5);

g.DrawLine (pen,label2.Left +label2.Width ,label3.Top-5,label2.Left +label2.Width ,label2.Top-5);

for(int i=1;i<=Num;i++)

{

g.FillPie (bb[i],FormWidth/6,FormHeight/6,KuanDu,KuanDu,StartAngl[i],SweepAngl[i]);

}

break;

default:

break;

}

}

#endregion

}

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//XML文件内容,此文件必须放在应用程序目录,文件名XMLChart.xml

<?xml version='1.0' encoding='utf-8' ?>

<configuration>

<appSettings>

<add key='DiagramType' value='histogram' />

<add key='DiagramName' value='1-12月产品数量对比' />

<add key='XName' value='月份' />

<add key='YName' value='数量' />

<add key='JNum' value='2' />

<add key='Num' value='5' />

<add key='Text' value='yes' />

<add key='ID1' value='1月' />

<add key='ID2' value='2月' />

<add key='ID3' value='3月' />

<add key='ID4' value='4月' />

<add key='ID5' value='5月' />

<add key='ID6' value='6月' />

<add key='ID7' value='7月' />

<add key='ID8' value='8月' />

<add key='ID9' value='9月' />

<add key='ID10' value='10月' />

<add key='ID11' value='11月' />

<add key='ID12' value='12月' />

<add key='ID13' value='1月' />

<add key='ID14' value='2月' />

<add key='ID15' value='3月' />

<add key='ID16' value='4月' />

<add key='ID17' value='5月' />

<add key='ID18' value='6月' />

<add key='ID19' value='7月' />

<add key='ID20' value='8月' />

<add key='ID21' value='9月' />

<add key='ID22' value='10月' />

<add key='ID23' value='11月' />

<add key='ID24' value='12月' />

<add key='ID25' value='1月' />

<add key='ID1Num1' value='9' />

<add key='ID1Num2' value='5' />

<add key='ID1Num3' value='6' />

<add key='ID1Num4' value='7' />

<add key='ID1Num5' value='4' />

<add key='ID1Num6' value='6' />

<add key='ID1Num7' value='5' />

<add key='ID1Num8' value='3' />

<add key='ID1Num9' value='2' />

<add key='ID1Num10' value='1' />

<add key='ID1Num11' value='2' />

<add key='ID1Num12' value='2' />

<add key='ID1Num13' value='2' />

<add key='ID1Num14' value='2' />

<add key='ID1Num15' value='2' />

<add key='ID1Num16' value='2' />

<add key='ID1Num17' value='2' />

<add key='ID1Num18' value='2' />

<add key='ID1Num19' value='2' />

<add key='ID1Num20' value='2' />

<add key='ID1Num21' value='2' />

<add key='ID1Num22' value='2' />

<add key='ID1Num23' value='2' />

<add key='ID1Num24' value='2' />

<add key='ID1Num25' value='2' />

<add key='ID2Num1' value='4' />

<add key='ID2Num2' value='5' />

<add key='ID2Num3' value='4' />

<add key='ID2Num4' value='1' />

<add key='ID2Num5' value='5' />

<add key='ID2Num6' value='3' />

<add key='ID2Num7' value='4' />

<add key='ID2Num8' value='1' />

<add key='ID2Num9' value='2' />

<add key='ID2Num10' value='4' />

<add key='ID2Num11' value='5' />

<add key='ID2Num12' value='2' />

<add key='ID2Num13' value='2' />

<add key='ID2Num14' value='2' />

<add key='ID2Num15' value='2' />

<add key='ID2Num16' value='2' />

<add key='ID2Num17' value='2' />

<add key='ID2Num18' value='2' />

<add key='ID2Num19' value='2' />

<add key='ID2Num20' value='2' />

<add key='ID2Num21' value='2' />

<add key='ID2Num22' value='2' />

<add key='ID2Num23' value='2' />

<add key='ID2Num24' value='2' />

<add key='ID2Num25' value='2' />

<add key='ID3Num1' value='4' />

<add key='ID3Num2' value='5' />

<add key='ID3Num3' value='6' />

<add key='ID3Num4' value='1' />

<add key='ID3Num5' value='2' />

<add key='ID3Num6' value='2' />

<add key='ID3Num7' value='5' />

<add key='ID3Num8' value='2' />

<add key='ID3Num9' value='5' />

<add key='ID3Num10' value='7' />

<add key='ID3Num11' value='9' />

<add key='ID3Num12' value='2' />

<add key='ID3Num13' value='2' />

<add key='ID3Num14' value='2' />

<add key='ID3Num15' value='2' />

<add key='ID3Num16' value='2' />

<add key='ID3Num17' value='2' />

<add key='ID3Num18' value='2' />

<add key='ID3Num19' value='2' />

<add key='ID3Num20' value='2' />

<add key='ID3Num21' value='2' />

<add key='ID3Num22' value='2' />

<add key='ID3Num23' value='2' />

<add key='ID3Num24' value='2' />

<add key='ID3Num25' value='2' />

<add key='ID4Num1' value='2' />

<add key='ID4Num2' value='5' />

<add key='ID4Num3' value='4' />

<add key='ID4Num4' value='2' />

<add key='ID4Num5' value='4' />

<add key='ID4Num6' value='3' />

<add key='ID4Num7' value='1' />

<add key='ID4Num8' value='1' />

<add key='ID4Num9' value='4' />

<add key='ID4Num10' value='5' />

<add key='ID4Num11' value='8' />

<add key='ID4Num12' value='2' />

<add key='ID4Num13' value='2' />

<add key='ID4Num14' value='2' />

<add key='ID4Num15' value='2' />

<add key='ID4Num16' value='2' />

<add key='ID4Num17' value='2' />

<add key='ID4Num18' value='2' />

<add key='ID4Num19' value='2' />

<add key='ID4Num20' value='2' />

<add key='ID4Num21' value='2' />

<add key='ID4Num22' value='2' />

<add key='ID4Num23' value='2' />

<add key='ID4Num24' value='2' />

<add key='ID4Num25' value='2' />

<add key='ID5Num1' value='2' />

<add key='ID5Num2' value='5' />

<add key='ID5Num3' value='4' />

<add key='ID5Num4' value='2' />

<add key='ID5Num5' value='4' />

<add key='ID5Num6' value='3' />

<add key='ID5Num7' value='1' />

<add key='ID5Num8' value='1' />

<add key='ID5Num9' value='4' />

<add key='ID5Num10' value='5' />

<add key='ID5Num11' value='8' />

<add key='ID5Num12' value='2' />

<add key='ID5Num13' value='2' />

<add key='ID5Num14' value='2' />

<add key='ID5Num15' value='2' />

<add key='ID5Num16' value='2' />

<add key='ID5Num17' value='2' />

<add key='ID5Num18' value='2' />

<add key='ID5Num19' value='2' />

<add key='ID5Num20' value='2' />

<add key='ID5Num21' value='2' />

<add key='ID5Num22' value='2' />

<add key='ID5Num23' value='2' />

<add key='ID5Num24' value='2' />

<add key='ID5Num25' value='2' />

<add key='ID6Num1' value='2' />

<add key='ID6Num2' value='5' />

<add key='ID6Num3' value='4' />

<add key='ID6Num4' value='2' />

<add key='ID6Num5' value='4' />

<add key='ID6Num6' value='3' />

<add key='ID6Num7' value='1' />

<add key='ID6Num8' value='1' />

<add key='ID6Num9' value='4' />

<add key='ID6Num10' value='5' />

<add key='ID6Num11' value='8' />

<add key='ID6Num12' value='2' />

<add key='ID6Num13' value='2' />

<add key='ID6Num14' value='2' />

<add key='ID6Num15' value='2' />

<add key='ID6Num16' value='2' />

<add key='ID6Num17' value='2' />

<add key='ID6Num18' value='2' />

<add key='ID6Num19' value='2' />

<add key='ID6Num20' value='2' />

<add key='ID6Num21' value='2' />

<add key='ID6Num22' value='2' />

<add key='ID6Num23' value='2' />

<add key='ID6Num24' value='2' />

<add key='ID6Num25' value='2' />

<add key='ID7Num1' value='2' />

<add key='ID7Num2' value='5' />

<add key='ID7Num3' value='4' />

<add key='ID7Num4' value='2' />

<add key='ID7Num5' value='4' />

<add key='ID7Num6' value='3' />

<add key='ID7Num7' value='1' />

<add key='ID7Num8' value='1' />

<add key='ID7Num9' value='4' />

<add key='ID7Num10' value='5' />

<add key='ID7Num11' value='8' />

<add key='ID7Num12' value='2' />

<add key='ID7Num13' value='2' />

<add key='ID7Num14' value='2' />

<add key='ID7Num15' value='2' />

<add key='ID7Num16' value='2' />

<add key='ID7Num17' value='2' />

<add key='ID7Num18' value='2' />

<add key='ID7Num19' value='2' />

<add key='ID7Num20' value='2' />

<add key='ID7Num21' value='2' />

<add key='ID7Num22' value='2' />

<add key='ID7Num23' value='2' />

<add key='ID7Num24' value='2' />

<add key='ID7Num25' value='2' />

<add key='ID8Num1' value='2' />

<add key='ID8Num2' value='5' />

<add key='ID8Num3' value='4' />

<add key='ID8Num4' value='2' />

<add key='ID8Num5' value='4' />

<add key='ID8Num6' value='3' />

<add key='ID8Num7' value='1' />

<add key='ID8Num8' value='1' />

<add key='ID8Num9' value='4' />

<add key='ID8Num10' value='5' />

<add key='ID8Num11' value='8' />

<add key='ID8Num12' value='2' />

<add key='ID8Num13' value='2' />

<add key='ID8Num14' value='2' />

<add key='ID8Num15' value='2' />

<add key='ID8Num16' value='2' />

<add key='ID8Num17' value='2' />

<add key='ID8Num18' value='2' />

<add key='ID8Num19' value='2' />

<add key='ID8Num20' value='2' />

<add key='ID8Num21' value='2' />

<add key='ID8Num22' value='2' />

<add key='ID8Num23' value='2' />

<add key='ID8Num24' value='2' />

<add key='ID8Num25' value='2' />

<add key='ID9Num1' value='2' />

<add key='ID9Num2' value='5' />

<add key='ID9Num3' value='4' />

<add key='ID9Num4' value='2' />

<add key='ID9Num5' value='4' />

<add key='ID9Num6' value='3' />

<add key='ID9Num7' value='1' />

<add key='ID9Num8' value='1' />

<add key='ID9Num9' value='4' />

<add key='ID9Num10' value='5' />

<add key='ID9Num11' value='8' />

<add key='ID9Num12' value='2' />

<add key='ID9Num13' value='2' />

<add key='ID9Num14' value='2' />

<add key='ID9Num15' value='2' />

<add key='ID9Num16' value='2' />

<add key='ID9Num17' value='2' />

<add key='ID9Num18' value='2' />

<add key='ID9Num19' value='2' />

<add key='ID9Num20' value='2' />

<add key='ID9Num21' value='2' />

<add key='ID9Num22' value='2' />

<add key='ID9Num23' value='2' />

<add key='ID9Num24' value='2' />

<add key='ID9Num25' value='2' />

<add key='ID10Num1' value='2' />

<add key='ID10Num2' value='5' />

<add key='ID10Num3' value='4' />

<add key='ID10Num4' value='2' />

<add key='ID10Num5' value='4' />

<add key='ID10Num6' value='3' />

<add key='ID10Num7' value='1' />

<add key='ID10Num8' value='1' />

<add key='ID10Num9' value='4' />

<add key='ID10Num10' value='5' />

<add key='ID10Num11' value='8' />

<add key='ID10Num12' value='2' />

<add key='ID10Num13' value='2' />

<add key='ID10Num14' value='2' />

<add key='ID10Num15' value='2' />

<add key='ID10Num16' value='2' />

<add key='ID10Num17' value='2' />

<add key='ID10Num18' value='2' />

<add key='ID10Num19' value='2' />

<add key='ID10Num20' value='2' />

<add key='ID10Num21' value='2' />

<add key='ID10Num22' value='2' />

<add key='ID10Num23' value='2' />

<add key='ID10Num24' value='2' />

<add key='ID10Num25' value='2' />

</appSettings>

</configuration>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有