C#中的chart横坐标显示日期和时间格式问题

我们在C#中画图表,经常会使用到chart这个控件。在进行添加数据时,横坐标可以是数值型的数据,如int、float等。也可以是datatime型的数据。

但是在使用datatime型数据做x坐标时,经常会发现只会显示到日期,即 年-月-日。

那么怎么显示精确到年-月-日 时:分:秒  格式呢?

答案很简单,只要设置下chart的chartArea里面的属性就行。即


chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "yyyy-MM-dd-HH:mm:ss";

就OK了


另外你有可能需要鼠标停留在chart1上曲线上某点上时,弹出该点的坐标。但此时直接获取的x点坐标很可能是一个double值,而不是datetime格式的,怎么办呢?

答:用DateTime.FromOADate(e.xValue); //括号内为你获取的点的横坐标

例码如下

private void chart_main_GetToolTipText(object sender, ToolTipEventArgs e)//这是chart的gettooltip事件的映射函数
{
    if (e.HitTestResult.ChartElementType == ChartElementType.DataPoint)
    {
        int i = e.HitTestResult.PointIndex;
        DataPoint dp = e.HitTestResult.Series.Points[i];
        DateTime dt = DateTime.FromOADate(dp.XValue);//将double的xvalue转换为datetime形式

        //分别显示x轴和y轴的数值,其中{1:F2},表示显示的是float类型,精确到小数点后2位。  
        e.Text = string.Format("时间:{0};数值:{1:F2} ", dt, dp.YValues[0]);
    }  

}

展开阅读全文

没有更多推荐了,返回首页