最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# Chart折線圖使用鼠標(biāo)滾輪放大、縮小和平移曲線方式

 更新時(shí)間:2022年06月28日 09:30:54   作者:s-noodles  
這篇文章主要介紹了C# Chart折線圖使用鼠標(biāo)滾輪放大、縮小和平移曲線方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Chart折線圖使用鼠標(biāo)滾輪放大、縮小和平移曲線

使用鼠標(biāo)滾輪滾動(dòng)放大和縮小X軸的寬度,鼠標(biāo)左鍵按住拖動(dòng)實(shí)現(xiàn)曲線的左右平移,不再使用滾動(dòng)條。

添加鼠標(biāo)滾輪事件

在chart控件自帶的鼠標(biāo)事件中并沒(méi)有鼠標(biāo)的滾輪事件,因此需要手動(dòng)添加一下,在窗體的Designer.cs文件下的InitializeComponent()函數(shù)中添加如下代碼

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

實(shí)現(xiàn)鼠標(biāo)滾輪事件

private void chart1_MouseWheel(object sender, MouseEventArgs e)
{
	// 實(shí)驗(yàn)發(fā)現(xiàn)鼠標(biāo)滾輪滾動(dòng)一圈時(shí)e.Delta = 120,正反轉(zhuǎn)對(duì)應(yīng)正負(fù)120
	if (chart1.ChartAreas[0].AxisX.ScaleView.Size > 0) // 防止越過(guò)左邊界
	{
		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
	}           
}     

上述方法即可實(shí)現(xiàn)鼠標(biāo)滾輪滾動(dòng)完成曲線的縮放功能,下面實(shí)現(xiàn)鼠標(biāo)按鍵按住左右拖動(dòng)實(shí)現(xiàn)曲線的左右平移。

初始化有關(guān)參數(shù)

// 定義兩個(gè)全局變量
public bool isMouseDown = false;
public int lastMove = 0; // 用于記錄鼠標(biāo)上次移動(dòng)的點(diǎn),用于判斷是左移還是右移
// 初始化ScaleView,可根據(jù)首次出現(xiàn)在chart中的數(shù)據(jù)點(diǎn)數(shù)修改合適的值
chart1.ChartAreas[0].AxisX.ScaleView.Size = 5;
// 設(shè)置不顯示chart自帶的滾動(dòng)條
chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = false;
chart1.ChartAreas[0].AxisY.ScrollBar.Enabled = false;
// 注意不要開(kāi)啟X軸游標(biāo),默認(rèn)不開(kāi)啟,如下設(shè)置false或者不設(shè)置下列參數(shù)
chart1.ChartAreas[0].CursorX.IsUserEnabled = false;
chart1.ChartAreas[0].CursorX.AutoScroll = false;
chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = false;

添加鼠標(biāo)按下、彈起和移動(dòng)事件

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

// 鼠標(biāo)按下事件
private void chart1_MouseDown(object sender, MouseEventArgs e)
{
	lastMove  = 0;
    isMouseDown = true;
}
// 鼠標(biāo)彈起事件
private void chart1_MouseUp(object sender, MouseEventArgs e)
{
    isMouseDown = false;
}
// 鼠標(biāo)移動(dòng)事件
private void chart1_MouseMove(object sender, MouseEventArgs e)
{
    if (isMouseDown)
    {
    	// 可更改(交換)如下加減1或if條件來(lái)設(shè)置鼠標(biāo)移動(dòng)時(shí)曲線移動(dòng)方向
        if(lastMove != 0 && e.X - lastMove > 0)
            chart1.ChartAreas[0].AxisX.ScaleView.Position += 1;  // 每次移動(dòng)1
        else if(lastMove != 0 && e.X - lastMove < 0)
            chart1.ChartAreas[0].AxisX.ScaleView.Position -= 1; // 每次移動(dòng)1
        lastMove = e.X;
    }
}

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

如何使用Chart圖表

Chart控件可以用來(lái)繪制波形圖、柱狀圖、餅圖、折線圖等,用來(lái)進(jìn)行數(shù)據(jù)表現(xiàn)是很不錯(cuò)的,現(xiàn)在簡(jiǎn)單說(shuō)一下這個(gè)控件的使用方法

效果圖

我們首先要加載Chart控件

然后打開(kāi)控件的屬性窗口

在這個(gè)窗口里面我們可以修改曲線的名稱,名稱在【數(shù)據(jù)》Name】里面修改

講一下屬性窗口里面我們用到的幾個(gè)選項(xiàng)的作用吧

數(shù)據(jù)

XValueType是X軸的數(shù)據(jù)類型,Y同理,這里我們選Time,可以隨時(shí)間改變

圖表

ChartType是圖表的類型,我們可以選出我們想要用的類型,這里選曲線

外觀

Color可以選擇曲線的顏色,這里我選了紅色

左邊的成員 框,是我們要顯示的曲線,可以添加多個(gè)

其他屬性如果有需要自行修改,修改好之后確定,回到窗口設(shè)計(jì)界面

在工具箱添加Timer

在Timer的事件窗口雙擊時(shí)鐘事件

代碼如下,請(qǐng)自行對(duì)照填到對(duì)應(yīng)的事件里面去

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是個(gè)自變量,曲線顯示的是cnt為底的2次指數(shù)曲線

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Unity實(shí)現(xiàn)背景圖片淡入淡出效果

    Unity實(shí)現(xiàn)背景圖片淡入淡出效果

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)背景圖片淡入淡出,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#中File和FileStream的簡(jiǎn)單介紹和用法

    C#中File和FileStream的簡(jiǎn)單介紹和用法

    這篇文章主要給大家介紹了關(guān)于C#中File和FileStream用法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Visual Studio 2019 清理空行問(wèn)題(非正則表達(dá)式)

    Visual Studio 2019 清理空行問(wèn)題(非正則表達(dá)式)

    這篇文章主要介紹了Visual Studio 2019 清理空行問(wèn)題(非正則表達(dá)式),本文通過(guò)實(shí)例截圖給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • C#二進(jìn)制序列化實(shí)例分析

    C#二進(jìn)制序列化實(shí)例分析

    這篇文章主要介紹了C#二進(jìn)制序列化,實(shí)例分析了C#二進(jìn)制序列化的方法,代碼中有較為詳盡的注釋說(shuō)明,便于理解,需要的朋友可以參考下
    2015-05-05
  • C#中out參數(shù)、ref參數(shù)與值參數(shù)的用法及區(qū)別

    C#中out參數(shù)、ref參數(shù)與值參數(shù)的用法及區(qū)別

    這篇文章主要給大家介紹了關(guān)于C#中out參數(shù)、ref參數(shù)與值參數(shù)的用法及區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • C#根據(jù)IP地址查詢所屬地區(qū)實(shí)例詳解

    C#根據(jù)IP地址查詢所屬地區(qū)實(shí)例詳解

    這篇文章主要介紹了C#根據(jù)IP地址查詢所屬地區(qū)實(shí)例詳解,調(diào)用的接口是免費(fèi)的接口,有需要的同學(xué)可以研究下
    2021-03-03
  • 詳解C#如何手動(dòng)改變自制窗體的大小

    詳解C#如何手動(dòng)改變自制窗體的大小

    這篇文章主要為大家詳細(xì)介紹了在C#中如何實(shí)現(xiàn)手動(dòng)改變自制窗體的大小,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C#實(shí)現(xiàn)簡(jiǎn)單飛行棋小游戲

    C#實(shí)現(xiàn)簡(jiǎn)單飛行棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)單飛行棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • C#中Abstract方法和Virtual方法的區(qū)別

    C#中Abstract方法和Virtual方法的區(qū)別

    這篇文章介紹了C#中Abstract方法和Virtual方法的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C#創(chuàng)建WebService接口并連接的全過(guò)程

    C#創(chuàng)建WebService接口并連接的全過(guò)程

    工作時(shí)遇到需要請(qǐng)求客戶的接口返回?cái)?shù)據(jù),要求使用WebService,借此機(jī)會(huì)記錄一下,下面這篇文章主要給大家介紹了關(guān)于C#創(chuàng)建WebService接口并連接的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12

最新評(píng)論

广元市| 桂阳县| 越西县| 宁国市| 荥阳市| 信阳市| 杂多县| 宁德市| 肥乡县| 云林县| 宝清县| 辉县市| 航空| 双柏县| 卓尼县| 南澳县| 闵行区| 澄迈县| 屏南县| 云南省| 六盘水市| 商丘市| 镇坪县| 莱阳市| 新龙县| 涟源市| 祁连县| 伊通| 新津县| 特克斯县| 云南省| 个旧市| 武强县| 界首市| 岳西县| 仪陇县| 文昌市| 定陶县| 开阳县| 东山县| 平顺县|