2

第一次在这里发帖但是来过这里1000次,真的很喜欢其他成员的贡献。我知道你们中的许多人会翻白眼,但我没有太多开始。我对 c#、MS C 的基础知识以及对 Microchip C 和 ASM 的了解更多。尝试为 WinCE6 制作一个应用程序作为家庭自动化主控制器,让我的大部分模块工作,没有时间将这些部分放在一起,拥有一个 50 列和 1440 行的 SQLCE 数据库,即 50 个设备和 1440 分钟1 天,所有控件将每天重复其功能。数据库当前填充了用于测试的随机数据,现在我想创建一个可视控件来创建数据,找不到 MSChart 控件的 CE 版本,所以我决定制作一个 x86 应用程序来创建我的数据。我的困难主要来自于经验不足,

在此示例中,您可以看到我想要实现的目标;1 没有数据点,所有 1440 条记录都将具有相同的值。2 加点到 200,400,600,800,1000,1100。3 将 Y 上 400 的点从 270 移动到 350。 4 删除了 200,400,600,800 的点。

接受所有建议。无法上传图片,请点击链接。谢谢

imgur.com/zsBla.jpg
imgur.com/y4wsn.jpg
imgur.com/Yo4XH.jpg
imgur.com/7FgHn.jpg


private void chart1_MouseClick(object sender, MouseEventArgs e)
    {
        var pos = e.Location;
        clickPosition = pos;
        var results = chart1.HitTest(pos.X, pos.Y, false, ChartElementType.PlottingArea);
        foreach (var result in results)
        {
            if (result.ChartElementType == ChartElementType.PlottingArea)
            {
                var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
                var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
                //tooltip.Show("x=" + xVal + ", y=" + yVal, this.chart1, e.Location.X, e.Location.Y - 15);
                tk++;
                chart1.Series[0].Points.InsertXY (0,tk,yVal);
                //chart1.Series[0].Sort(PointSortOrder.Ascending);//.Points.InsertXY(0,xVal, yVal);
                Tick.Text = tk.ToString();
            }

        }
    }
4

1 回答 1

0

Elcast,查看您的问题,看起来您真正的问题是您希望您的数据是“一对一”的,并且您几乎可以通过排序的数据获得它,但实际问题可能是您如何对数据进行排序.

我整理了一个快速演示,希望能帮助您解决问题:

 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Chart1.Series(0).ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line
        Chart1.Series(0).Points.AddXY(0, 10)
        Chart1.Series(0).Points.AddXY(1440, 100)
        Chart1.Series(0).Points.AddXY(600, 80)

        Chart2.Series(0).ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line
        Chart2.Series(0).Points.AddXY(0, 10)
        Chart2.Series(0).Points.AddXY(1440, 100)
        Chart2.Series(0).Points.AddXY(600, 80)

        Chart1.DataManipulator.Sort(System.Windows.Forms.DataVisualization.Charting.PointSortOrder.Descending, Chart1.Series(0))

    End Sub

这给出了这个(左:排序,右:未排序) 在此处输入图像描述

于 2012-10-26T19:07:07.377 回答