網站首頁 編程語言 正文
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,正反轉對應正負120
if (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;
}
}
最終效果如下,圖片前面黑呼呼的為控制臺輸出,似乎有點看不清(可忽略),可觀察到鼠標滾輪的變化。
如何使用Chart圖表
Chart控件可以用來繪制波形圖、柱狀圖、餅圖、折線圖等,用來進行數據表現是很不錯的,現在簡單說一下這個控件的使用方法
效果圖
我們首先要加載Chart控件
然后打開控件的屬性窗口
在這個窗口里面我們可以修改曲線的名稱,名稱在【數據》Name】里面修改
講一下屬性窗口里面我們用到的幾個選項的作用吧
數據
XValueType是X軸的數據類型,Y同理,這里我們選Time,可以隨時間改變
圖表
ChartType是圖表的類型,我們可以選出我們想要用的類型,這里選曲線
外觀
Color可以選擇曲線的顏色,這里我選了紅色
左邊的成員 框,是我們要顯示的曲線,可以添加多個
其他屬性如果有需要自行修改,修改好之后確定,回到窗口設計界面
在工具箱添加Timer
在Timer的事件窗口雙擊時鐘事件
代碼如下,請自行對照填到對應的事件里面去
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次指數曲線
原文鏈接:https://blog.csdn.net/baidu_41651935/article/details/118943228
相關推薦
- 2022-04-18 Android?app本地切換logo和名稱_Android
- 2022-09-08 Pytorch中expand()的使用(擴展某個維度)_python
- 2022-05-14 linq中的分區操作符_實用技巧
- 2022-06-11 Kubernetes集群環境初始化_云其它
- 2023-01-23 C語言實現讀取CSV文件的方法詳解_C 語言
- 2023-12-20 Mybatis中resultMap結果集的使用
- 2023-07-28 el-input 文本域固定高度
- 2022-03-16 .NET?6中的dotnet?monitor講解_實用技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支