LSB71 Ответов: 2

Графическая диаграмма C# visualstudion windows form


Привет,

Я только что создал графическую диаграмму с помощью кода, который работает с базой доступа OlrDb и работает хорошо.
Chart Graph_121 = new Chart(); // Créer un Chart vide
ChartArea ChartArea121 = new ChartArea(); // ChartArea (zone graphique)
Graph_121.ChartAreas.Add(ChartArea121);  // Ajoute le Chart Area à la Collection ChartAreas du Chart
Series series121 = new Series();  // Création serie (qui contiendront les DataPoints)


Мой вопрос заключается в следующем :

В той же форме я хочу добавить кнопку и удалить с помощью метода Clear my Chart, как это сделать?

Ничего не работает :
Graph_121.Clear();
ChartArea121.Clear();
series121.Clear();

Имя Graph_121 не существует в текущем контексте !
Можем ли мы объявить Graph_121, ChartArea121, series121 публично?

спасибо

Что я уже пробовал:

  Control Page_Principale = Graph_121.Page_Principale;
Page_Principale.Controls.Remove(Graph_121);

Graph_121.Clear();
ChartArea121.Clear();
series121.Clear();

Richard MacCutchan

Убедитесь, что ваша переменная не объявлена внутри метода, когда на нее ссылаются в других методах.

Richard Deeming

Основываясь на дополнительной информации в вашем не решение решение: вы объявили поля в верхней части класса, а затем объявили локальные переменные в одном методе, которые имеют то же имя, что и эти поля. Вы присваиваете значения локальным переменным, но никогда ничего не присваиваете полям.

Вы фактически вручаете конверт кому-то по имени "Боб", а затем подходите к другому человеку, которого также зовут "Боб", и ожидаете, что он получит ваш конверт.

2 Ответов

Рейтинг:
16

Gerry Schmitz

Похоже, что ваша "диаграмма" выходит "за рамки", если вы создали ее "по коду", как описано выше.

Определите свою диаграмму "на уровне класса" как "частный или публичный" член, чтобы различные части вашей программы могли "видеть" диаграмму, а не только метод, который сначала создал диаграмму (как "локальную" переменную).


Рейтинг:
1

LSB71

Hello, 
Thanks for your help. I just created a method like this:

  public void MyGraph_121()
        {
            string CentreAnnee = Filtre_Cbo_Annee.Text;

            Chart Graph_121 = new Chart();
            ChartArea ChartArea121 = new ChartArea(); 
            Graph_121.ChartAreas.Add(ChartArea121); 
                      Series series121 = new Series
            {
                IsValueShownAsLabel = true, 
                ChartArea = "ChartArea1"      
            };  
            
            Graph_121.Series.Add(series121); 

// rest of the code

      }

Then I said at the top of my page like this:

public int i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14;
        public string CentreAnnee;
        public ChartAreaCollection Graph_121, ChartArea121, series121;

Then once the graph displayed I test with this button:

private void button1_Click(object sender, EventArgs e)
{

    ChartArea121.Clear();
    series121.Clear();
    ChartArea121.Clear();
}

I have as an error message:

System.NullReferenceException : 
'Object reference not set to an instance of an object.'
ChartArea121 was null.

How to declare Chart items?

public ChartAreaCollection Graph_121, ChartArea121, series121;

Is it objects, string does not go, int either?

thank you


Richard Deeming

Если вы хотите обновить свой вопрос, чтобы добавить недостающую информацию, Нажмите зеленую ссылку "улучшить вопрос" и отредактируйте свой вопрос. НЕ опубликуйте свое обновление как "решение" вашего вопроса.