轉帖|其它|編輯:郝浩|2011-04-20 11:05:58.000|閱讀 1185 次
概述:學了一段時間ComponentOne的圖表,感覺ComponenOne圖表控件還可以,圖表樣式也較豐富,不過它的幫助全是英文的,而且有些地方寫的比較粗糙,示例程序也不夠詳細. 我把它總結了一下.
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
學了一段時間ComponentOne的圖表,感覺ComponenOne圖表控件還可以,圖表樣式也較豐富,不過它的幫助全是英文的,而且有些地方寫的比較粗糙,示例程序也不夠詳細. 我把它總結了一下.
使用方法
1.安裝好ComponentOne軟件.
2.建立一個WEB應用程序項目,名稱為: TextChart
3.將ComponentOne軟件自帶的控件集DLL文件(不一定全部,只把需要的一部分)拷貝到自己剛建的
項目TextChart的Bin目錄下面 (這里要手動放的原因是ComponentOne有時會找不到Dll)
4.雙擊項目里任何一個*.aspx文件,打開設計界面。 打開工具欄,在工具欄空白處右擊,選“添加/刪除”
項,打開自定義控件窗口,在.net frame 組件選項卡下選擇ComponentOne相應的組件,如果有清楚, 就將所有的C1開頭的全部勾選,點“確定按鈕". 則ComponentOne的控件就顯示在工具箱里面了 :)
5. 到了這一步,就可以將ComponentOne控件像一般控件一樣直接拖動使用了. 拖C1WebChart控件到
窗體頁面上. 然后右擊控件,選 "Chart wizard..."就可以為其設置顯示的樣式(餅圖/柱狀圖/折線圖等)和
屬性了,用法跟一般控件差不多。(如果感覺還是陌生的話,請看下面(三),除了用設計器設置外,
還可以代碼用代碼設置)
代碼設置
1. 限于篇幅,只講解主要的屬性
2.所有的圖表樣式原理差不多都一樣的,這里只講一下餅圖的實現方法
using C1.Web.C1WebChart;
//命名空間,必需加入,否則找不到里面的類和方法等
using C1.Web.C1WebChartBase;
using C1.Win.C1Chart;
protected C1.Web.C1WebChart.C1WebChart C1WebChart1;
// 控件聲明
1) <summary>主要屬性</summary>
C1WebChart1.Header.Text="Chart 頭"; //圖表頭標題
C1WebChart1.Footer.Text="Chart 尾"; //圖表尾文本
C1WebChart1.BackColor = Color.LightSteelBlue; //背景色
C1WebChart1.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;
//圖像存儲格式
C1WebChart1.ChartGroups.Group0.ChartType = Chart2DTypeEnum.Bar;
//圖表
// 類型,Chart2DTypeEnum枚舉下有所有的圖表樣式,如餅圖/柱狀圖等
C1WebChart1.Width=800; //圖表寬度
2) <summary>主要方法</summary>
a .X軸標簽(坐標)的方法,直接調用即可
public void AddAxisX()
{
// label x axis with product names
Axis ax = C1WebChart1.ChartArea.AxisX;
ax.ValueLabels.Clear();
ax.AnnoMethod = AnnotationMethodEnum.ValueLabels;
for(int i = 0; i < 100; i++)
{
//DataRowView drv = dv[i];
ax.ValueLabels.Add(i, (i+1).ToString());
}
try
{
ax.Max = 10 - .5;
}
catch {}
}
a .Y軸標簽(坐標)的方法,直接調用即可
public void AddAxisY()
{
// label y axis with product names
Axis ay = C1WebChart1.ChartArea.AxisY;
ay.ValueLabels.Clear();
ay.AnnoMethod = AnnotationMethodEnum.ValueLabels;
for(int i = 0; i < 10; i++)
{
//DataRowView drv = dv[i];
ay.ValueLabels.Add(i, (50*i).ToString());
}
try
{
ay.Max = 20 - .5;
}
catch {}
}
c.畫圖表的方法
public void GetPieData()
{
C1WebChart1.Legend.Visible = true; //圖表區塊注釋.
this.AddAxisX(); //上面方法a
this.AddAxisY(); //上面方法b
//生成數據
PointF[] data = new PointF[10];
for (int i = 0; i < data.Length; i++)
{
float y = float.Parse((3*i+5).ToString());
data[i] = new PointF(i, y);
}
//清除現有的餅圖
ChartDataSeriesCollection dscoll =
C1WebChart2.ChartGroups[0].ChartData.SeriesList;
dscoll.Clear();
//匯圖,即將點數組交給控件,它會自己分配,并畫出圖形
ChartDataSeries series = C1WebChart1.ChartGroups[0].ChartData.SeriesList[0];
series.PointData.CopyDataIn(data);// 這里的data是PointF類型
//給區塊加標簽
for(int i=0; i < data.Length; i++)
{
ChartDataSeries series = dscoll.AddNewSeries();
series.PointData.Length = 1;
series.Y[0] = data[i].Y;
series.Label= "我是:"+(i+1).ToString();
//加標簽
C1.Win.C1Chart.Label lbl = C1WebChart1.ChartLabels.LabelsCollection.AddNewLabel();
lbl.Text = string.Format( "{0} ({1:c})","第:"+i.ToString()+"扇區", data[i].Y);
lbl.Compass = LabelCompassEnum.Radial;
lbl.Offset = 20;
lbl.Connected = true;
lbl.Visible = true;
lbl.AttachMethod = AttachMethodEnum.DataIndex;
AttachMethodData am = lbl.AttachMethodData;
am.GroupIndex = 0;
am.SeriesIndex = i;
am.PointIndex = 0;
}
}
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載