中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#?Chart折線圖使用鼠標滾輪放大、縮小和平移曲線的方法

發布時間:2022-06-28 14:03:22 來源:億速云 閱讀:622 作者:iii 欄目:開發技術

這篇“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,正反轉對應正負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;
    }
}

最終效果如下,圖片前面黑呼呼的為控制臺輸出,似乎有點看不清(可忽略),可觀察到鼠標滾輪的變化。

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折線圖使用鼠標滾輪放大、縮小和平移曲線的方法”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安塞县| 浠水县| 安吉县| 民乐县| 台江县| 荣成市| 天水市| 桂林市| 九江县| 保山市| 龙游县| 浏阳市| 元朗区| 周宁县| 昌都县| 且末县| 承德市| 扎赉特旗| 荔浦县| 汉阴县| 城固县| 田东县| 县级市| 西林县| 桐柏县| 安达市| 正蓝旗| 安泽县| 沙湾县| 开封县| 永定县| 保亭| 滕州市| 肇州县| 白水县| 梓潼县| 中阳县| 阳西县| 民勤县| 五大连池市| 阿坝县|