c#winform中ZedGraphControl的清空问题

zhaoenxiang100 2010-01-28 05:11:48
分别在ZedGraphControl中生成柱形图,饼形图,曲线图,折线图等
但是没办法清空上一次生成的统计图,有谁知道原因?
我写了如下的清空:

GraphPane myPane = zg1.GraphPane;
//清空绘制区
myPane.CurveList.Clear();
myPane.GraphObjList.Clear();
。。。。。。。。。。。。。
zg1.AxisChange();
zg1.Refresh();
...全文
358 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lily_0629 2011-07-08
  • 打赏
  • 举报
回复
学习了
zhaoenxiang100 2010-02-01
  • 打赏
  • 举报
回复
谢谢!!!
hnjhjzyyxgs 2010-01-29
  • 打赏
  • 举报
回复
这控件我用了好久了 就使用了myPane.CurveList.Clear();
就可以很好的清空,一点问题都没有。给你看我的代码:


public void InitializeZedGraph(DataTable m_dt,string name, string p_strname, string dstand)
{
myPane = zed.GraphPane;
myPane.Title.Text = p_strname + "趋势图";
myPane.XAxis.Title.Text = "检测日期";
myPane.YAxis.Title.Text = "检验值";
myPane.XAxis.MajorGrid.IsVisible = true;
myPane.YAxis.MajorGrid.IsVisible = true;

//背景颜色
myPane.Fill = new Fill(Color.White, Color.LightBlue, 90F);
myPane.Chart.Fill.IsVisible = false;
myPane.Legend.Fill.IsVisible = false;
list.Clear();
DataTable dtTime = new DataTable(); //用于计算X抽最大最小值的数据表
dtTime.Columns.Add("date", typeof(System.DateTime));
//DataRow dr = dtTime.NewRow();

bool b = m_dt.Columns.Contains("SAMPTIME"); //判断时间列是否存在
for (int i = 0; i < m_dt.Rows.Count; i++)
{
if (m_dt.Rows[i][name].ToString() != string.Empty)
{
DateTime dt;
if (b == true)
{
dt = Convert.ToDateTime(m_dt.Rows[i]["SAMPDATE"].ToString() + " " + m_dt.Rows[i]["SAMPTIME"].ToString());
}
else
{
dt = Convert.ToDateTime(m_dt.Rows[i]["SAMPDATE"].ToString());
}

DataRow dr = dtTime.NewRow();
dr["date"] = dt;
dtTime.Rows.Add(dr);
XDate xd = new XDate(dt);
double x = (double)xd;

double y = Convert.ToDouble(m_dt.Rows[i][name]);
list.Add(x, y);
}
}
myPane.CurveList.Clear();
myCurve = myPane.AddCurve(p_strname, list, Color.Green, SymbolType.Diamond);//SymbolType.None的定义绘制线条的形状


try
{
DateTime dMax = Convert.ToDateTime(dtTime.Compute("Max(date)", "true"));
DateTime dMin = Convert.ToDateTime(dtTime.Compute("Min(date)", "true"));
myPane.GraphObjList.Clear();
if (dstand != string.Empty)
{
StandZedGraph(dMax, dMin, dstand);
}

}
catch
{ }
myPane.XAxis.Type = AxisType.Date;
myPane.YAxis.Type = AxisType.Linear;


//X坐标时间显示格式
myPane.XAxis.Scale.Format = "yyyy-MM-dd hh:mm";
myPane.XAxis.Scale.MinorStep = 1;
//X轴大步长为5,也就是显示文字的大间隔
myPane.XAxis.Scale.MajorStep = 5;

//坐标点时间显示格式

zed.PointDateFormat = "yyyy-MM-dd hh:mm";
zed.IsShowPointValues = true;
// Calculate the Axis Scale Ranges
zed.AxisChange();//数据有变化重新绘制
zed.Refresh();
}
缭绕飘渺 2010-01-29
  • 打赏
  • 举报
回复
我也是项目需要
今天才看到这个开源控件的
正在看
看到就告诉你
abaochan 2010-01-28
  • 打赏
  • 举报
回复
帮楼主顶了。
fengyoujie 2010-01-28
  • 打赏
  • 举报
回复
帮楼主顶了。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧