WinFrom(Windows的窗体应用)的chart控件画折线图

1.问题:Form1_Load() 不执行

问题产生的原因:代码中的Form1_Load()方法不是自动生成的,而是自己手动写的。所以里面有些配置没修改,导致Form1_Load()无效

解决方法一: 删除这个方法,然后到设计界面那里,双击界面后,会发现自动生成了Form1_load(),然后再进行代码编写。

解决方法二: 在 public Form1(){}里增加一句代码,如下

this.Load += new EventHandler(Form1_Load);

2.代码

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;
using System.Windows.Forms.DataVisualization.Charting;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {

        //public Form是类的构造函数,负责对类成员进行初始化工作。比如所有控件的创建、指定大小、位置等等。
        //习惯上构造函数会调用InitializeComponent来实现窗体的初始化工作(初始化为设计模式中指定的状态)。
        public Form1()
        {
            InitializeComponent();
            //this.Load += new EventHandler(Form1_Load);
        }

        //一般写程序你把自己要初始化的东东可以放在Form1_Load中,当然也可以在InitializeComponent中,那就要重载InitializeComponent了。
        //Form_Load窗体加载方法,用来图形界面,这时候可以设置一些窗体属性
        private void Form1_Load_1(object sender, EventArgs e)
        {
            int[] arrt = new int[] { 94, 25, 12, 36, 89, 13, 45, 12, 10, 69, 12, 0, 12, 56 };
            Draw(arrt);
        }

        /// <summary>
        /// 画折线图
        /// </summary>
        /// <param name="arrt"></param>
        public void Draw(int[] arrt)
        {
            chart1.Series.Clear();
            Series series = new Series("C1");
            series.ChartType = SeriesChartType.Line;
            series.IsValueShownAsLabel = true;
            chart1.ChartAreas[0].AxisX.Title = "温度(℃)";
            chart1.ChartAreas[0].AxisY.Title = "反应热(kJ)";
            chart1.ChartAreas[0].AxisY.MajorGrid.Interval = 1;//ChartAreas[0]想要获取或设置的元素从0开始的索引
            chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.LightBlue;
            chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.LightBlue;
            chart1.ChartAreas[0].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dash;//虚线
            chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
            chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 400;
            chart1.ChartAreas[0].AxisY.MajorGrid.Interval = 50;
            chart1.ChartAreas[0].AxisX.Interval = 400;
            chart1.ChartAreas[0].AxisY.Interval = 50; //设置Y轴的刻度间距
            
            //Y轴范围-400~+400  X轴范围温度0~4000
            chart1.ChartAreas[0].AxisX.Minimum = 0;
            chart1.ChartAreas[0].AxisX.Maximum = 4500;
            chart1.ChartAreas[0].AxisY.Minimum = -400;
            chart1.ChartAreas[0].AxisY.Maximum = 400;

            chart1.ChartAreas[0].Area3DStyle.Enable3D = false;//启用3D显示
            //设置空数据时显示坐标轴
            chart1.ChartAreas[0].AxisX.Enabled = AxisEnabled.True;
            chart1.ChartAreas[0].AxisY.Enabled = AxisEnabled.True;

            for(int i = 0; i < arrt.Length; i++)
            {
                series.Points.AddXY(i, arrt[i]);
            }
            //把series添加到chart上
            chart1.Series.Add(series);
        }

        private void chart1_Click(object sender, EventArgs e)
        {

        }

        
    }
}

3.绘图(不太美观,逐渐修改中)

4.整理参考

(1)c# -- Form1_Load()不被执行的三个解决方法 - lmei - 博客园

(2)WinForm的Chart控件画折线图 - 无~道 - 博客园

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,请稍等一下,我需要一些时间来解答您的问题。 以下是在Winform窗体中使用Menu控件设置笔的RGB值和粗细的详细代码: 1. 首先,在窗体上添加一个MenuStrip控件,然后在其中添加一个ToolStripMenuItem控件,并设置其Text属性为“设置笔颜色和粗细”。 2. 在ToolStripMenuItem的Click事件处理程序中编写以下代码: private void 设置笔颜色和粗细ToolStripMenuItem_Click(object sender, EventArgs e) { ColorDialog colorDialog = new ColorDialog(); // 创建一个颜色对话框 if (colorDialog.ShowDialog() == DialogResult.OK) // 如果用户选择了一种颜色 { // 设置笔颜色为用户选择的颜色 PenColor = colorDialog.Color; } // 创建一个输入框,允许用户输入笔宽度 Form inputForm = new Form(); inputForm.StartPosition = FormStartPosition.CenterScreen; inputForm.FormBorderStyle = FormBorderStyle.FixedDialog; inputForm.MaximizeBox = false; inputForm.MinimizeBox = false; Label label = new Label(); label.Text = "请输入笔粗细:"; label.Dock = DockStyle.Top; NumericUpDown numericUpDown = new NumericUpDown(); numericUpDown.Value = PenWidth; numericUpDown.Dock = DockStyle.Top; Button okButton = new Button(); okButton.Text = "确定"; okButton.DialogResult = DialogResult.OK; okButton.Dock = DockStyle.Bottom; inputForm.Controls.Add(okButton); inputForm.Controls.Add(numericUpDown); inputForm.Controls.Add(label); if (inputForm.ShowDialog() == DialogResult.OK) // 如果用户点击了“确定”按钮 { // 设置笔宽度为用户输入的数值 PenWidth = (int)numericUpDown.Value; } } 3. 在窗体上添加一个Paint事件处理程序,并在其中使用创建的笔绘制图形: private void Form1_Paint(object sender, PaintEventArgs e) { using (Pen pen = new Pen(PenColor, PenWidth)) { e.Graphics.DrawLine(pen, 0, 0, this.ClientSize.Width, this.ClientSize.Height); } } 以上代码将帮助您在Winform窗体中使用Menu控件设置笔颜色和粗细。请注意,在编写您自己的代码之前,请根据您的实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值