狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 在winform下做一個(gè)簡單的儀表盤

admin
2024年6月18日 12:40 本文熱度 1018

摘要


  1. 創(chuàng)建一個(gè)新的WinForms應(yīng)用程序項(xiàng)目。

  2. 在窗體上添加一個(gè)PictureBox控件,用于繪制儀表盤。

  3. 在窗體的構(gòu)造函數(shù),訂閱PictureBoxPaint事件以進(jìn)行繪制。

要在WinForms中創(chuàng)建一個(gè)儀表盤(Gauge),可以使用GDI+進(jìn)行自定義繪制。這里是一個(gè)簡單的示例,展示如何創(chuàng)建一個(gè)儀表盤控件并在窗口中顯示它。這個(gè)示例包括繪制刻度、刻度上的數(shù)字以及根據(jù)當(dāng)前值繪制指針。

正文


public partial class Form1 : Form

{

    int yourValue = 110;

    Timer timer=new Timer();

    public Form1()

    {

        InitializeComponent();


        pictureBox1.Paint += PictureBox1_Paint;

        timer.Interval = 1000;

        timer.Tick += Timer_Tick;

        timer.Start();

    }


    private void Timer_Tick(object? sender, EventArgs e)

    {

        yourValue=new Random().Next(1,200);

        pictureBox1.Refresh();

    }


    private void PictureBox1_Paint(object? sender, PaintEventArgs e)

    {

        Graphics g = e.Graphics;

        g.SmoothingMode = SmoothingMode.AntiAlias; // 減少毛邊


        int centerX = pictureBox1.Width / 2;

        int centerY = pictureBox1.Height / 2;

        int radius = Math.Min(centerX, centerY);

        int totalSteps = 20; // 刻度的總數(shù)


        // 自定義顏色

        Color scaleColor = Color.Gray;

        Color textColor = Color.Black;


        Color pointerEndColor = Color.Red; // 指針結(jié)束點(diǎn)的顏色


        // 繪制刻度盤

        for (int step = 0; step <= totalSteps; step++)

        {

            double angle = Math.PI * (1 - step / (double)totalSteps); // 此行修改

            int x = centerX + (int)(0.85 * radius * Math.Cos(angle));

            int y = centerY - (int)(0.85 * radius * Math.Sin(angle));


            // 繪制刻度圓點(diǎn)

            int dotRadius = 4;

            g.FillEllipse(new SolidBrush(scaleColor), x - dotRadius, y - dotRadius, dotRadius * 2, dotRadius * 2);


            // 顯示刻度上的數(shù)字

            int value = step * 10; // 0到200的刻度值

            SizeF textSize = g.MeasureString(value.ToString(), Font);

            int textX = centerX + (int)(0.75 * radius * Math.Cos(angle)) - (int)(textSize.Width / 2);

            int textY = centerY - (int)(0.75 * radius * Math.Sin(angle)) - (int)(textSize.Height / 2);

            g.DrawString(value.ToString(), Font, new SolidBrush(textColor), new PointF(textX, textY));

        }


        // 繪制指針

        int pointerLength = radius - 20;

        double pointerAngle = Math.PI * (yourValue / 200.0); // 根據(jù)值計(jì)算角度

        int pointerX = centerX + (int)(pointerLength * Math.Cos(pointerAngle));

        int pointerY = centerY - (int)(pointerLength * Math.Sin(pointerAngle));


        // 繪制指針線

        g.DrawLine(new Pen(pointerEndColor, 3), centerX, centerY, pointerX, pointerY);

    }

}

代碼解釋

  1. 類定義和初始化

    • Form1類繼承自Form,包含一個(gè)整型變量yourValue來保存儀表盤指針的當(dāng)前值。

    • Timer類實(shí)例用于每秒產(chǎn)生一個(gè)隨機(jī)值并更新儀表盤。

  2. 構(gòu)造函數(shù)

    • 在構(gòu)造函數(shù)Form1中,設(shè)置pictureBox1Paint事件以便在需要重繪時(shí)調(diào)用PictureBox1_Paint方法。

    • 設(shè)置計(jì)時(shí)器的時(shí)間間隔為1000毫秒(1秒),并在每次Tick事件觸發(fā)時(shí)調(diào)用Timer_Tick方法。

    • 啟動(dòng)計(jì)時(shí)器。

  3. Timer_Tick方法

    • 隨機(jī)生成一個(gè)1到200的值并賦給yourValue

    • 調(diào)用pictureBox1.Refresh觸發(fā)重繪。

  4. PictureBox1_Paint方法

    • 通過參數(shù)e獲取Graphics對(duì)象,用于繪制操作。

    • 設(shè)置抗鋸齒模式以提高繪圖質(zhì)量。

    • 計(jì)算儀表盤的中心點(diǎn)和半徑。

    • 繪制刻度盤,包括刻度的刻畫和刻度值的顯示。

    • 根據(jù)當(dāng)前值計(jì)算指針的位置并繪制指針。

這個(gè)示例中,儀表盤的刻度值范圍是0到200,每秒隨機(jī)更新一個(gè)值來模擬指針的移動(dòng)。通過對(duì)上述代碼的理解,您可以進(jìn)一步定制和擴(kuò)展儀表盤控件,例如改變外觀、增加功能等。


該文章在 2024/6/18 12:40:16 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved