只是一個快速。 我有一個圖表,可以顯示9個不同系列,數據通過來自用戶的文本框進入並填充這些相應的系列。啓用時更改圖表系列顏色,具體取決於系列[索引]
該圖形鏈接到checkedlistbox,並且在列表框中選中的項目在圖表上啓用它們各自的系列。只有2系列可以在任何一個時間,這沒有問題,使用下面的代碼工作中啓用:
private void chListBoxChartSeries_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.NewValue == CheckState.Checked && chListBoxChartSeries.CheckedItems.Count >= 2)
{
e.NewValue = CheckState.Unchecked;
}
}
public void saveChartSeries()
{
//placeholder variable to relate between checklist item and chart series
string seriesName;
for (int index = 0; index < chListBoxChartSeries.Items.Count; ++index)
{
seriesName = chListBoxChartSeries.Items[index].ToString();
if (chListBoxChartSeries.CheckedItems.Contains(chListBoxChartSeries.Items[index]))
{
main.chartVitals.Series[seriesName].Enabled = true;
}
else
{
main.chartVitals.Series[seriesName].Enabled = false;
}
}
}
有一件事我做想做的事在這之後,我想任何一個系列都能夠被設置爲每個顏色(第一系列紅色,第二系列藍色)。我正在努力尋找一種有效的方法來做到這一點,但我想它涉及將兩個索引中的第一個設置爲一種顏色(紅色),第二個索引設置爲另一種顏色(藍色)。我想我可以在此使用現有的for循環中saveChartSeries()函數來完成,像這樣:
public void saveChartSeries()
{
//placeholder variable to relate between checklist item and chart series
string seriesName;
for (int index = 0; index < chListBoxChartSeries.Items.Count; ++index)
{
seriesName = chListBoxChartSeries.Items[index].ToString();
if (chListBoxChartSeries.CheckedItems.Contains(chListBoxChartSeries.Items[index]))
{
main.chartVitals.Series[seriesName].Enabled = true;
if (main.chartVitals.Series[seriesName].Enabled == true)
{
//set series color to Color.Red
//if there is already a red series, set to Color.Blue
}
}
else
{
main.chartVitals.Series[seriesName].Enabled = false;
}
}
}
這是大約相當於我能得到這麼遠,如果有人能提供下一個步驟,或者如果我過於複雜並且有一個更簡單的方法,我會很感激有人指出它!
這有效果,所以謝謝你。同樣謝謝你的建議,我將在未來接受這一點,並將嘗試使用這些原則優化我的程序代碼。 – marcuthh