0

私が持っている 6 つのコンボボックスから取得できるデータからグラフを作成する必要があります。

コンボボックスのデータは数値です。コンボボックスで目的の数値を選択したら、これらの値に基づいてグラフを作成するボタンを押します。

私の問題は、一度しかできないことです。コンボボックスの値を変更してもう一度ボタンをクリックすると、例外が発生します。

ボタンを押すたびに新しいチャートのインスタンスを作成する必要があることは理解していますが、その方法はわかりません。

private void button1_Click(object sender, EventArgs e)
{
    chart1.ChartAreas.Add("chart");
    chart1.ChartAreas["chart"].AxisX.Minimum = 0;
    chart1.ChartAreas["chart"].AxisX.Maximum = 20;
    chart1.ChartAreas["chart"].AxisX.Interval = 1;

    chart1.ChartAreas["chart"].AxisY.Minimum = 0;
    chart1.ChartAreas["chart"].AxisY.Maximum = 100;
    chart1.ChartAreas["chart"].AxisY.Interval = 5;

    chart1.Series.Add("xxx");
    chart1.Series.Add("yyy");

    chart1.Series["xxx"].Color = Color.Black;
    chart1.Series["yyy"].Color = Color.Red;

    chart1.Series["xxx"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
    chart1.Series["yyy"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;

    chart1.Series["xxx"].Points.AddXY(comboBox1.Text, comboBox4.Text);
    chart1.Series["yyy"].Points.AddXY(comboBox1.Text, comboBox4.Text);

    chart1.Series["xxx"].Points.AddXY(comboBox2.Text, comboBox5.Text);
    chart1.Series["yyy"].Points.AddXY(comboBox1.Text, comboBox4.Text);

    chart1.Series["xxx"].Points.AddXY(comboBox3.Text, comboBox6.Text);
    chart1.Series["yyy"].Points.AddXY(comboBox1.Text, comboBox4.Text);
}
4

1 に答える 1

5

chart1 を Chart の新しいインスタンスに設定してみてください(私はそれが何であるかを想定しています!)

したがって、次のようになります。

 private void button1_Click(object sender, EventArgs e) 
 { 
    chart1 = new Chart();
    chart1.ChartAreas.Add("chart"); 
    chart1.ChartAreas["chart"].AxisX.Minimum = 0; 
    chart1.ChartAreas["chart"].AxisX.Maximum = 20; 
    chart1.ChartAreas["chart"].AxisX.Interval = 1; 

    chart1.ChartAreas["chart"].AxisY.Minimum = 0; 
    chart1.ChartAreas["chart"].AxisY.Maximum = 100; 
    chart1.ChartAreas["chart"].AxisY.Interval = 5; 

    chart1.Series.Add("xxx"); 
    chart1.Series.Add("yyy"); 

    chart1.Series["xxx"].Color = Color.Black; 
    chart1.Series["yyy"].Color = Color.Red; 

    chart1.Series["xxx"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; 
    chart1.Series["yyy"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; 

    chart1.Series["xxx"].Points.AddXY(comboBox1.Text, comboBox4.Text); 
    chart1.Series["yyy"].Points.AddXY(comboBox1.Text, comboBox4.Text); 

    chart1.Series["xxx"].Points.AddXY(comboBox2.Text, comboBox5.Text); 
    chart1.Series["yyy"].Points.AddXY(comboBox1.Text, comboBox4.Text); 

    chart1.Series["xxx"].Points.AddXY(comboBox3.Text, comboBox6.Text); 
    chart1.Series["yyy"].Points.AddXY(comboBox1.Text, comboBox4.Text); 
} 
于 2012-06-17T21:28:47.530 に答える