Null引用异常被处理
本文关键字:处理 异常 引用 Null | 更新日期: 2023-09-27 18:03:15
我试图通过使用以下
单击一个图表来显示报告图表代码,但显示错误
ERROR: null引用异常被处理未设置为对象实例的对象引用。targetcontrol.ChartAreas.Clear();
这是图表控件的点击事件
using System.Windows.Forms.DataVisualization.Charting;
private void kpiChartControl_Click(object sender, EventArgs e)
{
Chart targetcontrol = null;
Series series = null;
Title title;
string are;
targetcontrol.ChartAreas.Clear();
targetcontrol.Series.Clear();
targetcontrol.Titles.Clear();
DataTable accepts = null;
accepts = KPIData.AcceptedvisitsByMembership(mf ,"accepted");
are = " acceptedvisitsmshiptypes";
targetcontrol.ChartAreas.Add(are);
series = targetcontrol.Series.Add(are);
series.ChartArea = are;
title = targetcontrol.Titles.Add("Accepted Visits By MemberShip Type");
title.DockedToChartArea = are;
title.Font = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Bold);
title.Alignment = ContentAlignment.TopLeft;
foreach (Title titles in targetcontrol.Titles)
{
titles.IsDockedInsideChartArea = false;
}
foreach (Series serie in targetcontrol.Series)
{
serie.ChartType = SeriesChartType.Pie;
serie["PieLabelStyle"] = "Outside";
serie["DoughnutRadius"] = "30";
serie["PieDrawingStyle"] = "SoftEdge";
serie.BackGradientStyle = GradientStyle.DiagonalLeft;
}
foreach (Legend legend in targetcontrol.Legends)
{
legend.Enabled = false;
}
foreach (ChartArea chartArea in targetcontrol.ChartAreas)
{
chartArea.Area3DStyle.Enable3D = true;
chartArea.Area3DStyle.Inclination = 45;
//chartArea.AxisX.LabelStyle.IsEndLabelVisible = !overview;
}
targetcontrol.Series[0].Points.DataBindXY(accepts.Rows, "mshiptypenumbers", accepts.Rows, "mshipType_Name");
foreach (Series chartSeries in targetcontrol.Series)
{
foreach (DataPoint point in chartSeries.Points)
{
switch (point.AxisLabel)
{
case "Silver membership": point.Color = Color.Green; break;
//case "Refused": point.Color = Color.Red; break;
}
point.Label = string.Format("{0:0}", point.YValues[0]);
}
}
}
你设置了一个变量
Chart targetcontrol = null;
然后尝试使用
targetcontrol.ChartAreas.Clear();
targetcontrol是空的,没有ChartAreas属性。试着改变第三行
Chart targetcontrol = null;
Chart targetcontrol = new Chart();
你当然会得到这个错误,你在声明
Chart targetcontrol = null;
然后你试图使用它,而没有实际实例化它的任何东西