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]);
    }
  }
}

Null引用异常被处理

你设置了一个变量

Chart targetcontrol = null;

然后尝试使用

targetcontrol.ChartAreas.Clear();

targetcontrol是空的,没有ChartAreas属性。试着改变第三行

Chart targetcontrol = null;

Chart targetcontrol = new Chart();

你当然会得到这个错误,你在声明

Chart targetcontrol = null; 

然后你试图使用它,而没有实际实例化它的任何东西