原創(chuàng)|行業(yè)資訊|編輯:凌霄漢|2022-04-13 15:28:28.290|閱讀 205 次
概述:此次報(bào)表開發(fā)工具TeeChart Pro .NET使用教程將為大家?guī)砣绾巫屪远x序列化。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
TeeChart Pro 將自動(dòng)為您定義所有 Axis 標(biāo)簽,并提供足夠的靈活性來定制您可能有的任何特定要求。 TeeChart Pro 提供真正的多軸。 這些在設(shè)計(jì)或運(yùn)行時(shí)可用,并為 Axis 定義提供了無數(shù)的可能性和靈活性。
TeeChart 自動(dòng)處理所有必要的序列化步驟以允許保存和調(diào)用 TeeChart。這包括圖表及其系列的所有修改元素。
您可以決TeeChart系列提供您需要的大部分功能,但您希望修改它以包含您自己的附加信息,以便系列發(fā)布或采取行動(dòng)或提供對(duì)您的其他部分的參考使用該系列時(shí)的應(yīng)用程序。為此,您可能希望創(chuàng)建自己的 SeriesType,從 TeeChart Series 派生,添加您自己的自定義元素。 TeeChart 的自定義序列化允許保存(序列化)和恢復(fù)這些元素。
請(qǐng)注意:自定義元素的保存分為兩種技術(shù):
讓我們假設(shè)您希望從 TeeChart 的 Line Series 派生一個(gè) Series。 Line 系列包含您需要的功能,但您希望添加一些元素用于跟蹤目的或作為與任何特定數(shù)據(jù)集關(guān)聯(lián)的增值對(duì)象。
以下是如何定義從線系列派生的自定義系列的示例:
public class MyLine : Steema.TeeChart.Styles.Line { public MyLine(Chart c) : base(c) { myStrVar = "default"; } public MyLine() : this((Chart)null) { } private string myStrVar = ""; private int myIntVar = 0; public string MyStrProp { get { return myStrVar; } set { myStrVar = value; } } public int MyIntProp { get { return myIntVar; } set { myIntVar = value; } } }
您可以填充自定義變量并保存圖表,當(dāng)重新導(dǎo)入保存的圖表時(shí),它們將導(dǎo)入。 只要變量是已知的系統(tǒng)類型(例如字符串、整數(shù)、雙精度),就不需要額外的步驟。 TeeChart 將處理序列化和反序列化。
private void button1_Click(object sender, EventArgs e) { MyLine mLine=new MyLine(); mLine.MyStrProp = "now set"; mLine.MyIntProp = 43; tChart1.Series.Add(mLine); mLine.FillSampleValues(); tChart1.Export.Template.Save(@"c:\files\customLine.ten"); }
導(dǎo)入帶有修改系列的圖表
private void button2_Click(object sender, EventArgs e) { tChart1.Clear(); tChart1.Import.Template.Load(@"c:\files\customLine.ten"); label1.Text = ((MyLine)(tChart1[0])).MyStrProp; label2.Text = ((MyLine)(tChart1[0])).MyIntProp.ToString(); }
Label1 和 Label2 將顯示保存圖表之前設(shè)置的值。
以下是從 Line Series 派生的 Series 示例,其中包括已知和未知類型 (MyObj) 的新元素。 由于 TeeChart 不知道如何序列化和反序列化未知類型,我們需要提供一種機(jī)制,您可以在其中編寫例程來執(zhí)行此操作并在序列化/反序列化時(shí)調(diào)用它。 該機(jī)制是通過從 Steema.TeeChart.Export.TemplateExport.ICustomSerialization 接口繼承類來提供的。 這要求您向您的類添加 2 個(gè)方法:
using Steema.TeeChart.Export; // Custom Line class public class MyLine : Steema.TeeChart.Styles.Line, TemplateExport.ICustomSerialization { public MyLine(Chart c) : base(c) { myStrVar = "default"; } public MyLine() : this((Chart)null) { } private string myStrVar = ""; private int myIntVar = 0; private MyObj myMyObj; public string MyStrProp { get { return myStrVar; } set { myStrVar = value; } } public int MyIntProp { get { return myIntVar; } set { myIntVar = value; } } ////// Method to ease population of the myMyObj variable. /// public void setMyObj(int i, string s) { myMyObj = new MyObj(i, s); } ////// Property of Custom type, MyObj /// public MyObj MyObj { get { return myMyObj; } set { myMyObj = value; } } ////// Obligatory method (TemplateExport.ICustomSerialization interface) /// public void Serialize(SerializationInfo info) { //save custom elements info.AddValue("myObjStr", myMyObj.MyString, myMyObj.MyString.GetType()); info.AddValue("myObjInt", myMyObj.MyInt); } ////// Obligatory method (TemplateExport.ICustomSerialization interface) /// public void DeSerialize(SerializationInfo info) { //recover custom elements into the myMyObj variable myMyObj = new MyObj(info.GetInt32("myObjInt"), info.GetString("myObjStr")); } } //custom object public class MyObj { private string myString; private int myInt; public MyObj(int i, string s) { myString = s; myInt = i; } public int MyInt { get { return myInt; } set { myInt = value; } } public string MyString { get { return myString; } set { myString = value; } } }
請(qǐng)注意,序列化使用“info.AddValue”來保存自定義元素的值。 反序列化根據(jù)您保存的變量類型使用“info.Getxxxx”。
如果您想了解TeeChart for .NET正版價(jià)格,歡迎咨詢
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn