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)
{
// 實驗發(fā)現鼠標滾輪滾動一圈時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次指數曲線
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
HttpWebRequest出錯.Section=ResponseHeader Detail=CR
HttpWebRequest出錯.Section=ResponseHeader Detail=CR...2007-03-03

