2011-07-21 18 views
0

を扱った私は、次のはエラーnull参照の例外が

コードを使用することにより、1つのチャートをクリックすることで、レポートのチャートを表示しようとしていますが、それは

ERRORは、エラーを示していたです オブジェクト参照がオブジェクトのインスタンスに設定されていません。この行の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]); 
    } 

    } 
} 
+2

共有いただきありがとうございます。 – w69rdy

+0

あなたはそれをどのラインで受け取りますか? –

+0

@ Yochai Timmer targetcontrol.ChartAreas.Clear();この行で – user682417

答えて

1

に三行目

Chart targetcontrol = null; 

を変更してみてください、あなたは

Chart targetcontrol = null; 

を宣言している次に、あなたが実際にそれをインスタンス化せずにそれを使用しようとしています何かに。

+0

K 1つの質問私はチャートコントロールを使用してレポートを表示していますそれは私たちが別のグラフを表示する必要がありますグラフ内のバーをクリックするといいです。私の質問は、何かを行うには、msのグラフでバーをクリックするためのイベントがある.......私は多くのseacrhed私はどんな解決策も見つけませんでした... – user682417

+0

それは何のレポートも表示されません.........私は1つのグラフをクリック – user682417

2

は、あなたが設定され、チャートコントロールのイベントをクリックしている

Chart targetcontrol = null; 
が、その後

targetcontrol.ChartAreas.Clear(); 

targetcontrolがnullで使用しようとChartAreasを持っていない変数プロパティ。あなたがそのエラーを取得します。もちろん、

Chart targetcontrol = new Chart(); 
+0

私はグラフのコントロールを使用して表示されたレポートを表示しています私たちが何かを行うには、msのグラフのバーをクリックするためのイベントがありますか.......私はseacrhedを持っている私は何も解決策を見つけることができませんでした... – user682417

+0

それはどのレポートも表示していません.........私は1つのチャートをクリックします – user682417