簡體   English   中英

在C#的Windows窗體上顯示圖表控件中的所有點

[英]Display all points in chart control on a windows form in C#

我試圖在C#的Windows窗體應用程序的圖表控件中顯示0和200之間的x和y坐標的幾個點。 我的代碼如下所示:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        public class Point
        {
            public double X;
            public double Y;

            public Point(double x, double y)
            {
                X = x;
                Y = y;
            }
        }

        public Form1()
        {

            InitializeComponent();

            List<Point> points = new List<Point>();

            for (int i=0; i<5; i++)
            {
                points.Add(new Point(GetRandomNumber(0, 200), GetRandomNumber(0, 200)));
            }

            foreach(Point f in points)
            {
                chart1.Series["Series1"].Points.AddXY(f.X, f.Y);
            }

            Application.DoEvents();

        }

        double GetRandomNumber(double minimum, double maximum)
        {
            Random random = new Random();
            return random.NextDouble() * (maximum - minimum) + minimum;
        }
    }
}

但是,當我運行它時,我得到以下圖:

在此處輸入圖片說明

無論使用什么范圍,我都會得到類似的結果。 例如,以下輸出是x和y的范圍為0、30的輸出:

在此處輸入圖片說明

但是,當我手動向列表中輸入一些隨機點時,圖表會適當縮放,並且它們都會很好地顯示出來:

List<Point> points = new List<Point>
            {
                new Point(10, 29),
                new Point(5, 16),
                new Point(27, 8),
                new Point(17, 23),
                new Point(22, 13)
            };

在此處輸入圖片說明

為什么是這樣? 以及在隨機生成時如何使所有點正確顯示。

我在用:

Microsoft Visual Studio Community 2017 
Visual C# 2017   00369-60000-00001-AA613
Microsoft Visual C# 2017

在@HansPassant的幫助下回答我自己的問題。 顯然,因為我每次都創建一個新的隨機對象,所以隨機數生成器每次都生成相同的數字,並且所有的點都在彼此之上。 我通過在構造函數中聲明一個“隨機”對象,然后將其傳遞給我的“ GetRandomNumber”函數來修復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM