Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   Вопрос по C#, компонент Chart. Не получается использовать метод AddXY. (http://forums.kuban.ru/f1024/vopros_po_c_komponent_chart_ne_poluchaetsya_ispol-zovat-_metod_addxy-6484138.html)

megabax 04.02.2015 22:11

Вопрос по C#, компонент Chart. Не получается использовать метод AddXY.
 
Добрый день. У меня программа рисует биржевой график (свечки), каждую свечку задаю так:
/// <summary>
/// Добавить свечу в график
/// </summary>
/// <param name="open">Цена открытия</param>
/// <param name="high">Максимум</param>
/// <param name="low">Минимум</param>
/// <param name="close">Цена закрытия</param>
/// <param name="x">Координата x</param>
private void addBar(double open, double high, double low, double close, DateTime x)
**
double[] mas1 = ** high, low, open, close **;
SourceChart.Series[0].Points.Add(mas1);
**


Все бы хорошо, но внизу подписи в виде цифр 1,2,3 и т.д. а хотелось бы даты. Подскажите пожалуйста, как это сделать?
Если делаю

double[] mas1 = ** high, low, open, close **;
//SourceChart.Series[0].Points.Add(mas1);
SourceChart.Series[0].Points.AddXY(x, mas1);


выдаёт исключение

"Точки данных ряда не поддерживают значения типа System.Double[], допускается использование значений только следующих типов: Double, Decimal, Single, int, long, uint, ulong, String, DateTime, short, ushort."

ipp 05.02.2015 22:15

Если это teechart (тот что есть в delphi), то там в свойствах серии можно было указать что горизонтальная или вертикальная ось имеет она имеет тип datetime это делалось в настройках в режиме разработки или программно, например,
Series1.XValues.DateTime:=true;

в вашем случае это будет как то так
SourceChart.Series[0].XValues.DateTime=true;

SheLLest 09.02.2015 11:35

Выдаёт исключение потому что нужно внимательнее читать MSDN!
Может быть только одно из двух:
1. AddXY Method (Double, Double)
2. AddXY Method (Object, Object[])
AddXY добавлят ОДНУ! точку на график. А Вы пИхаете в параметры массив double.


Текущее время: 21:22. Часовой пояс GMT +3.