Windows Forms: Stock Chart & Candlestick Chart in C#

How to make a Stock Chart or Candlestick Chart in C#

Step 1Click New Project, then select Visual C# on the left, then Windows and then select Windows Forms Application. Name your project "StockChart" and then click OK

stock chart in c#Step 2: Create a local database, then add a stock table to your database -> create a dataset then drag the stock table to your dataset as below

dataset c#

Step 3: Design your form as below

stock chart c#

Step 4: Add code to handle your form as below

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 StockChart
    public partial class Form1 : Form
        public Form1()

        private void Form1_Load(object sender, EventArgs e)
            // TODO: This line of code loads data into the 'database.Stocks' table. You can move, or remove it, as needed.

        private void btnSave_Click(object sender, EventArgs e)
                MessageBox.Show("Your data has been successfully saved.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
            catch(Exception ex)
                MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);

        private void btnLoad_Click(object sender, EventArgs e)
            //Clear Grid
            chart.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineWidth = 0;
            chart.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineWidth = 0;
            chart.Series["Daily"].XValueMember = "Day";
            chart.Series["Daily"].YValueMembers = "High,Low,Open,Close";
            chart.Series["Daily"].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Date;
            chart.Series["Daily"].CustomProperties = "PriceDownColor=Red,PriceUpColor=Blue";
            //chart.Series["Daily"]["OpenCloseStyle"] = "Triangle";
            chart.Series["Daily"]["ShowOpenClose"] = "Both";
            chart.DataManipulator.IsStartFromFirst = true;
            chart.DataSource = database.Stocks;