2

ここに初めて投稿しましたが、ここに 1000 回アクセスしており、他のメンバーからの投稿が本当に気に入っています。多くの人が目を丸くすることは知っていますが、最初はあまりありません。私は、C#、MS C の基本、および Microchip C と ASM についてある程度理解しています。ホーム オートメーションのメイン コントローラーとして WinCE6 用のアプリを作成しようとしています。ほとんどのモジュールが動作していて、ピースをまとめる時間はありません。50 列と 1440 行の SQLCE データベースを用意します。ある日、すべてのコントロールが毎日機能を繰り返します。現在、データベースにはテスト用のランダム データが入力されています。データを作成するためのビジュアル コントロールを作成したいのですが、MSChart コントロールの CE バージョンが見つからないため、データを作成できる x86 アプリを作成することにしました。私の困難は主に経験不足によるもので、

この例では、私が達成したいことを見ることができます。1 データポイントがない場合、すべての 1440 レコードが同じ値になります。200、400、600、800、1000、1100 に 2 点追加。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、あなたの問題を見てみると、あなたの本当の問題は、データを「1対1」にしたいということであり、ソートされたデータでほとんど得られるようですが、おそらく実際の問題は、データをソートする方法です.

問題の解決に役立つことを願って、簡単なデモをまとめました。

 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 に答える