LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Black, SymbolType.None);每次都只能只能设置一种固定的颜色。请问如何利用colorbox自定义曲线的颜色啊?

解决方案 »

  1.   

    这是柱状图,,但是颜色代码时一样的http://blog.csdn.net/happy09li/article/details/7535388
      

  2.   

    楼主可参考下zedgraph的例子,看看是否能够借鉴实现你的要求
    http://sourceforge.net/projects/zedgraph/files/
      

  3.   

    if...LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Black, SymbolType.None);elseLineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.red, SymbolType.None); 
    那就要写几个判断了,if点击什么,然后弹出什么颜色
      

  4.   

    如果写成判断,if需要枚举的太多了。因为我想使用颜色对话框,让用户自己选择颜色,用类似的方法可以修改背景色等其他的都没有问题。
    但是修改曲线颜色就出现问题了,当打开第一个文件的时候是可以正常修改成任何颜色的。但是再打开新文件,颜色就固定成上次修改的最后的那个颜色了。再使用颜色对话框我无法修改颜色。不知道哪里出错了。望高手指点一下哈!
     public LineItem myCurve; private void menuOpenAsp_Click(object sender, EventArgs e)
    {
    ...
    ...
    myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Black, SymbolType.None);
    ...
    ...
    }
    private void menunChangeColor_Click(object sender, EventArgs e)
          {
             ColorDialog colorDialog = new ColorDialog();
             colorDialog.AllowFullOpen = true;
             colorDialog.FullOpen = true;
             colorDialog.ShowHelp = false; 
             colorDialog.Color = Color.Blue;
             colorDialog.ShowDialog();
             myCurve.Color = colorDialog.Color;
             zg.AxisChange();
             zg.Refresh();
          }
      

  5.   


    我试了,一样的情况,每次只有第一打开文件的时候可以正确选择颜色,重新打开新的文件后就默认上次打开文件时的颜色,不管我选的是什么颜色。if(colorComboBox.SelectedColor==Color.Black)
                   { LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Black, SymbolType.None); }
                   else if(colorComboBox.SelectedColor==Color.Gray)
                   { LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Gray, SymbolType.None); }
                   else if(colorComboBox.SelectedColor==Color.Maroon)
                   { LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Maroon, SymbolType.None); }
                   else if(colorComboBox.SelectedColor==Color.Olive)
                   { LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Olive, SymbolType.None); }
      

  6.   


    我试了,一样的情况,每次只有第一打开文件的时候可以正确选择颜色,重新打开新的文件后就默认上次打开文件时的颜色,不管我选的是什么颜色。if(colorComboBox.SelectedColor==Color.Black)
                   { LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Black, SymbolType.None); }
                   else if(colorComboBox.SelectedColor==Color.Gray)
                   { LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Gray, SymbolType.None); }
                   else if(colorComboBox.SelectedColor==Color.Maroon)
                   { LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Maroon, SymbolType.None); }
                   else if(colorComboBox.SelectedColor==Color.Olive)
                   { LineItem myCurve = myPane.AddCurve(myPane.Title.Text, list, Color.Olive, SymbolType.None); }
      

  7.   

    你这是else,又不是选择颜色。
    点击选择颜色,应该在不同的事件里写吧
      

  8.   

    我使用的ColorComboBox,里面颜色选择都是写好的,colorComboBox.SelectedColor可以获得ColorComboBox的颜色啊。http://www.codeproject.com/Articles/27472/ColorComboBox
      

  9.   

    你选择颜色的时候,目的是刷新出新的颜色,但是你的代码if else 根本没有这个逻辑啊,选择颜色的时候触发到你的换颜色的代码
      

  10.   

    改变某条曲线的颜色可以通过更改曲线的颜色属性来实现:
    CurveItem myCurve=myPane.AddCurve(label, x, y, color, Symbol);myCurve.Color=Color.red;  //更改颜色
    myCurve.IsVisible=false;  //更改可见性
    ((LineItem)myCurve).Symbol.Type=SymbolType.None;  //更改曲线上的标记样式最后别忘了刷新ZedGraph控件
    zedGraphControl.AxisChange();
    zedGraphControl.Invalidate();