有没有办法为数字波形图制作自定义EditDateTimeFormatMode?

时间:2012-11-15 19:09:10

标签: c# windows winforms plot waveform

当我点击我的数字波形图上的结束标记时,我正试图这样做,弹出的格式是“s.fff”,而不是默认的“mm / dd” / yyyy hh / mm / ss“。我找到了XAxis.EditDateTimeFormatMode属性,但看起来你只能指定一个“长格式模式”或“短格式模式”,它们都不适合小规模。有没有办法制作自己的DateTimeFormatMode,使扩展的编辑字段只有几秒和几毫秒(更准确地缩放/重新定位图表)而不是默认的大规模?仅供参考,这是实现“短”格式模式的代码,该模式不够短:

this.digitalWaveformGraph1.XAxis.EditDateTimeFormatMode = NationalInstruments.UI.DateTimeFormatMode.CreateShortTimeMode();

我意识到这是一个精确的问题,但希望有人在使用快速信号时遇到同样的问题。非常感谢!

1 个答案:

答案 0 :(得分:1)

这只会让你指向正确的方向,但一般的想法是创建一个继承NationalInstruments.UI.DateTimeFormatMode的类 - 类似这样:

public class SecondsEditRangeFormat : DateTimeFormatMode
{
    public override string FormatValue(object context, DateTimeFormatModeArgs args)
    {
        return args.Value.ToString("s.fff");
    }

    public override bool TryParse(string s, out DateTime value)
    {   
        value = DateTime.ParseExact(s, "s.fff", CultureInfo.CurrentCulture);
        return true;
    }
}

然后将您的类的实例分配给该属性:

digitalWaveformGraph1.XAxis.EditRangeDateTimeFormatMode = new SecondsEditRangeFormat();