文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法

2023-07-02 13:22

关注

这篇“C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法”文章吧。

Chart折线图使用鼠标滚轮放大、缩小和平移曲线

使用鼠标滚轮滚动放大和缩小X轴的宽度,鼠标左键按住拖动实现曲线的左右平移,不再使用滚动条。

添加鼠标滚轮事件

在chart控件自带的鼠标事件中并没有鼠标的滚轮事件,因此需要手动添加一下,在窗体的Designer.cs文件下的InitializeComponent()函数中添加如下代码

this.chart1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.chart1_MouseWheel);

实现鼠标滚轮事件

private void chart1_MouseWheel(object sender, MouseEventArgs e){// 实验发现鼠标滚轮滚动一圈时e.Delta = 120,正反转对应正负120if (chart1.ChartAreas[0].AxisX.ScaleView.Size > 0) // 防止越过左边界{chart1.ChartAreas[0].AxisX.ScaleView.Size += (e.Delta / 120); // 每次缩放1}else if(e.Delta > 0){chart1.ChartAreas[0].AxisX.ScaleView.Size += (e.Delta / 120); // 每次缩放1}           }

上述方法即可实现鼠标滚轮滚动完成曲线的缩放功能,下面实现鼠标按键按住左右拖动实现曲线的左右平移。

初始化有关参数

// 定义两个全局变量public bool isMouseDown = false;public int lastMove = 0; // 用于记录鼠标上次移动的点,用于判断是左移还是右移// 初始化ScaleView,可根据首次出现在chart中的数据点数修改合适的值chart1.ChartAreas[0].AxisX.ScaleView.Size = 5;// 设置不显示chart自带的滚动条chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = false;chart1.ChartAreas[0].AxisY.ScrollBar.Enabled = false;// 注意不要开启X轴游标,默认不开启,如下设置false或者不设置下列参数chart1.ChartAreas[0].CursorX.IsUserEnabled = false;chart1.ChartAreas[0].CursorX.AutoScroll = false;chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = false;

添加鼠标按下、弹起和移动事件

上述事件在chart控件中均自带,直接添加即可,事件代码如下:

// 鼠标按下事件private void chart1_MouseDown(object sender, MouseEventArgs e){lastMove  = 0;    isMouseDown = true;}// 鼠标弹起事件private void chart1_MouseUp(object sender, MouseEventArgs e){    isMouseDown = false;}// 鼠标移动事件private void chart1_MouseMove(object sender, MouseEventArgs e){    if (isMouseDown)    {    // 可更改(交换)如下加减1或if条件来设置鼠标移动时曲线移动方向        if(lastMove != 0 && e.X - lastMove > 0)            chart1.ChartAreas[0].AxisX.ScaleView.Position += 1;  // 每次移动1        else if(lastMove != 0 && e.X - lastMove < 0)            chart1.ChartAreas[0].AxisX.ScaleView.Position -= 1; // 每次移动1        lastMove = e.X;    }}

最终效果如下,图片前面黑呼呼的为控制台输出,似乎有点看不清(可忽略),可观察到鼠标滚轮的变化。

C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法

如何使用Chart图表

Chart控件可以用来绘制波形图、柱状图、饼图、折线图等,用来进行数据表现是很不错的,现在简单说一下这个控件的使用方法

效果图

C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法

我们首先要加载Chart控件

C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法

然后打开控件的属性窗口

C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法

C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法

在这个窗口里面我们可以修改曲线的名称,名称在【数据》Name】里面修改

讲一下属性窗口里面我们用到的几个选项的作用吧

数据

XValueType是X轴的数据类型,Y同理,这里我们选Time,可以随时间改变

图表

ChartType是图表的类型,我们可以选出我们想要用的类型,这里选曲线

C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法

外观

Color可以选择曲线的颜色,这里我选了红色

左边的成员 框,是我们要显示的曲线,可以添加多个

其他属性如果有需要自行修改,修改好之后确定,回到窗口设计界面

在工具箱添加Timer

C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法

在Timer的事件窗口双击时钟事件

C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法

代码如下,请自行对照填到对应的事件里面去

public partial class Form1 : Form    {        int cnt = 0;        public Form1()        {            InitializeComponent();        }         private void Form1_Load(object sender, EventArgs e)        {            timer1.Enabled = true;        }         private void timer1_Tick(object sender, EventArgs e)        {            chart1.Series[0].Points.AddY(cnt*cnt);            label1.Text = cnt.ToString();            cnt++;        }         private void chart1_Click(object sender, EventArgs e)        {         }    }

cnt是个自变量,曲线显示的是cnt为底的2次指数曲线

以上就是关于“C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯