У меня есть следующий пользовательский интерфейс, где значения в радиолокационной карте вычисляются по среднему арифметическому некоторых значений TrackBar.Объект Player принимает эти значения, вычисляет среднее значение и возвращает его обратно в ряд данных радарной диаграммы.
Что я хочу сделать, так это то, что когда я изменяю значение в TrackBar, диаграмма изменяет свои значения в реальномвремя.Когда я изменяю значения, он пересчитывает среднее значение, а затем изменяет форму диаграмм.
Вот мой код:
public AddPlayerForm()
{
InitializeComponent();
Load += this.AddPlayerForm_Load;//reloads the chart component every continuously
LoadComboBoxes();
MetroFramework.Controls.MetroTrackBar[] trackBars = new MetroFramework.Controls.MetroTrackBar[20];
}
//loads the Chart Content
private void AddPlayerForm_Load(object sender, EventArgs e)
{
/*I tried to clear the current chart to recalculate and redraw the chart in every cycle
but its not working this way*/
chart1.Series.Clear();//clear the current chart
new_player.SetPlayerStats( //get values from TrackBars
mtTrackBarAttack.Value,
mtTrackBarBallControl.Value,
.
.//all trackBar.Values
.
mtInjuryResistenceTB.Value,
1,
"Messi");
//recalculate the arithimetic mean and returns as a tag to the chart
//Ex: {"Agility",60.4}
Dictionary<string, float> tags = new_player.MeanStats();//Player method that calculates the mean and returns a dictionary <String, float>
//creates a new series of data
chart1.Series.Add("s1");
chart1.Series["s1"].ChartType = SeriesChartType.Radar;
foreach (string tagname in tags.Keys)
{
//for each set of data, plots the name and its value in the Chart
chart1.Series["s1"].Points.AddXY(tagname, tags[tagname]);
}
}
Я пытаюсь очистить старый график и перерисовать новый график, ноне работает таким образом.