c# - How to change chart series color -


i have single series populates chart records database. 7 records been displayed in sanme color.

i' trying change each bar color without success

winforms bar chart

below lines tried gave me 1 big green bar (:

        private void button1_click(object sender, eventargs e)     {         /*first empty chart2 fire current data*/         if (cbchart.selecteditem == null)         {             chart.visible = false;             chart.controls.clear();         }         else             //pnchart.controls.clear();         chart.visible = true;         chart.titles.clear();           /*add new title*/         title bezeichung = new title("finance" + environment.newline + "(gwu)", docking.top, new font("yu gothic", 8, fontstyle.bold), color.black);         chart.titles.add(bezeichung);                   chart.titles.add(bezeichung2);             if (cbchart.selecteditem != null)         {       string s =    configurationmanager.connectionstrings[""].connectionstring;       sqlconnection con = new sqlconnection(s);       sqlcommand cmd = new sqlcommand();       cmd.connection = con;       cmd.commandtype = commandtype.storedprocedure;       cmd.commandtext = ("[dbo].[storedprocedure]");       cmd.parameters.addwithvalue("@table_name", cbchart.selectedvalue.tostring());       sqldatareader myreader;  // datareader read data datbase              try             {                 //do                 con.open();                 myreader = cmd.executereader();                  while (myreader.read())                 {                     //parameters (seriesname, x-axis data & y-axis data)                     this.chart.series["series"].points.addxy(myreader["finance"], myreader["gwu"]);                      // remove grid lines                     chart.chartareas[0].axisx.majorgrid.linewidth = 0;                     chart.chartareas[0].axisy.majorgrid.linewidth = 0;                     chart.chartareas[0].axisx.labelstyle.angle = -45;        chart.series["series1"].points[0].color = color.green;       chart.series["series1"].points[1].color = color.red;       chart.series["series1"].points[2].color = color.powderblue;       chart.series["series1"].points[3].color = color.peru;       chart.series["series1"].points[4].color = color.pink;       chart.series["series1"].points[5].color = color.purple;                 }              }             catch (exception ex)             {                 messagebox.show(ex.message);             }                         {                 con.close();             }         }           else          {  messagebox.show("bitte ", "info", messageboxbuttons.ok, messageboxicon.warning);          }      } 

that’s error message received after running it: index lies outside valid range, index must not negative , must lower size of list

and chart after hitting button:

enter image description here

you trying change color of points before added in series. move below block out of while loop , check if enough points exists in series before try access index,

  chart.series["series1"].points[0].color = color.green;   chart.series["series1"].points[1].color = color.red;   chart.series["series1"].points[2].color = color.powderblue;   chart.series["series1"].points[3].color = color.peru;   chart.series["series1"].points[4].color = color.pink;   chart.series["series1"].points[5].color = color.purple; 

below changes need make in code,

while (myreader.read()) { //parameters (seriesname, x-axis data & y-axis data) this.chart.series["series"].points.addxy(myreader["finance"], myreader["gwu"]);  }  if(chart.chartareas.count > 0) { chart.chartareas[0].axisx.majorgrid.linewidth = 0; chart.chartareas[0].axisy.majorgrid.linewidth = 0; chart.chartareas[0].axisx.labelstyle.angle = -45; }   if(chart.series["series1"].points.count > 5) { chart.series["series1"].points[0].color = color.green; chart.series["series1"].points[1].color = color.red; chart.series["series1"].points[2].color = color.powderblue; chart.series["series1"].points[3].color = color.peru; chart.series["series1"].points[4].color = color.pink; chart.series["series1"].points[5].color = color.purple; } 

Comments

Popular posts from this blog

node.js - How to mock a third-party api calls in the backend -

node.js - Why do I get "SOCKS connection failed. Connection not allowed by ruleset" for some .onion sites? -

jquery - Javascript click event on a dynamically created button inside a loop -