精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用7段碼數(shù)碼管?

汽車電子技術(shù) ? 來源:dotNet工控上位機(jī) ? 作者: 新閣教育付工 ? 2023-02-22 15:50 ? 次閱讀

數(shù)碼管

在開發(fā)上位機(jī)UI界面時(shí),我們常常會(huì)希望數(shù)值可以以7段數(shù)碼管的形式呈現(xiàn)。

關(guān)于7段數(shù)碼管,最早接觸應(yīng)該是學(xué)習(xí)單片機(jī)的時(shí)候,它可以將數(shù)字或者字母以7段字符來呈現(xiàn),所以有時(shí)候也叫7段LED數(shù)碼管顯示。

實(shí)現(xiàn)思路

C#想要實(shí)現(xiàn)7段數(shù)碼管顯示,一般會(huì)有兩種思路,一種是GDI+,通過代碼繪制的方式來實(shí)現(xiàn),今天,給大家介紹另外一種簡單而又方便的方式,那就是通過設(shè)置字體,提前做好一個(gè)7段碼的字體,在電腦中安裝好即可,當(dāng)然字體也可以用現(xiàn)成的,這里給大家提供一個(gè)線程的7段碼字體,公眾號(hào)回復(fù)關(guān)鍵詞:7SEG 或 124

使用也很簡單,就是拖放一個(gè)Label標(biāo)簽到界面上,然后設(shè)置字體選擇為7SEG,設(shè)置合適的字體大小即可。

圖片

使用7SEG字體,前提要安裝這個(gè)字體,安裝也很簡單,雙擊下載的7SEG.ttf即可。

最終呈現(xiàn)的效果如下所示:

圖片

項(xiàng)目應(yīng)用

這個(gè)提及一下項(xiàng)目應(yīng)用,如果我們開發(fā)好項(xiàng)目,把程序放到其他電腦上使用,由于其他電腦沒有安裝7SEG的字體,效果肯定會(huì)不一樣。

一種方法就是提前手動(dòng)安裝好字體,然后再運(yùn)行程序,但是也沒有其他好的方法呢?

也許你們也想到了,就是通過代碼自動(dòng)完成,思路就是檢測字體是否存在,存在則繼續(xù),不存在則通過代碼安裝字體。

所以首先需要第一個(gè)方法,檢測某個(gè)字體是否存在,方法如下:

/// 
        /// 檢測某種字體樣式是否可用
        /// 
        /// 字體名稱
        /// 字體樣式
        /// 
        private bool CheckFont(string familyName, FontStyle fontStyle = FontStyle.Regular)
        {
            InstalledFontCollection installedFontCollection = new InstalledFontCollection();
            FontFamily[] fontFamilies = installedFontCollection.Families;
            foreach (var item in fontFamilies)
            {
                if (item.Name.Equals(familyName))
                {
                    return item.IsStyleAvailable(fontStyle);
                }
            }
            return false;
        }

有了這個(gè)方法之后,還需要另外一個(gè)方法就是安裝字體,安裝字體需要提供字體的路徑,代碼如下:

/// <summary>
        /// 安裝字體
        /// class="hljs-keyword"summary>
        /// name="fontFilePath">字體文件全路徑
        /// <returns>是否成功安裝字體class="hljs-keyword"returns>
        /// <exception cref="UnauthorizedAccessException">不是管理員運(yùn)行程序class="hljs-keyword"exception>
        /// <exception cref="Exception">字體安裝失敗class="hljs-keyword"exception>
        private bool InstallFont(string fontFilePath)
        {
            try
            {
                System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
                System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
                //判斷當(dāng)前登錄用戶是否為管理員
                if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator) == false)
                {
                    throw new UnauthorizedAccessException("當(dāng)前用戶無管理員權(quán)限,無法安裝字體");
                }
                //獲取Windows字體文件夾路徑
                string fontPath = Path.Combine(System.Environment.GetEnvironmentVariable("WINDIR"), "fonts", Path.GetFileName(fontFilePath));
                //檢測系統(tǒng)是否已安裝該字體
                if (!File.Exists(fontPath))
                {                 
                    //將某路徑下的字體拷貝到系統(tǒng)字體文件夾下
                    File.Copy(fontFilePath, fontPath); //font是程序目錄下放字體的文件夾
                    AddFontResource(fontPath);
                    //安裝字體
                    WriteProfileString("fonts", Path.GetFileNameWithoutExtension(fontFilePath) + "(TrueType)", Path.GetFileName(fontFilePath));
                }
            }
            catch (Exception ex)
            {
                return false;
            }
            return true;
        }

最終在項(xiàng)目運(yùn)行初始化里執(zhí)行如下代碼:

if (!CheckFont("7SEG"))
            {
                if (InstallFont(FontPath))
                {
                    MessageBox.Show("字體安裝成功,重啟生效!", "字體安裝");
                }
                else
                {
                    MessageBox.Show("字體安裝失?。?, "字體安裝");
                }
            }

其中FontPath是字體文件的路徑,一般可以提前方法根目錄下。這樣即使是沒有安裝字體的電腦,也可以直接正常顯示了。

-END-

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6032

    文章

    44514

    瀏覽量

    632981
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1874

    瀏覽量

    90943
  • 字符
    +關(guān)注

    關(guān)注

    0

    文章

    232

    瀏覽量

    25173
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    7段數(shù)碼管管腳順序及譯碼驅(qū)動(dòng)集成電路

    7段數(shù)碼管管腳順序及譯碼驅(qū)動(dòng)集成電路74LS47,48  這里介紹一下7段數(shù)碼管見下圖 7段數(shù)碼管
    發(fā)表于 11-06 13:42 ?1.2w次閱讀

    紅外遙控解碼數(shù)碼管顯示實(shí)驗(yàn)

    紅外遙控解碼數(shù)碼管顯示實(shí)驗(yàn)[hide]紅外遙控解碼數(shù)碼管顯示實(shí)驗(yàn).rar[/hide] [此貼子已經(jīng)被作者于2009-12-7 18:25:13編輯過]
    發(fā)表于 12-07 18:22

    proteus的7段數(shù)碼管的問題

    最近剛開始接觸proteus,調(diào)用里面的數(shù)碼管時(shí),發(fā)現(xiàn)CC驅(qū)動(dòng)是位選為低,選為高才能亮,CA驅(qū)動(dòng)是位選為高,選為低才能亮,那么7段數(shù)碼管
    發(fā)表于 07-25 22:29

    如何去解決編碼數(shù)碼管的數(shù)值問題

    最佳答案你那個(gè)編碼數(shù)碼管的數(shù)值可能有問題,寫出來全是亂碼。(這是我寫的,你可以做個(gè)參考):#include***it wela=P2^7;***it dula=P2^6;#define uchar
    發(fā)表于 07-15 07:45

    數(shù)碼管簡介

    數(shù)碼管簡介 組成:LED數(shù)碼管7或8發(fā)光二極組成,在平面上排成8字型。
    發(fā)表于 12-20 03:01 ?2580次閱讀
    <b class='flag-5'>數(shù)碼管</b>簡介

    共陰極7段數(shù)碼管

    共陰極7段數(shù)碼管 LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這
    發(fā)表于 03-14 13:03 ?3.2w次閱讀
    共陰極<b class='flag-5'>7</b><b class='flag-5'>段數(shù)碼管</b>

    共陽極7段數(shù)碼管

    共陽極7段數(shù)碼管 LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對(duì)編程是很重要的,因?yàn)椴煌愋偷?b class='flag-5'>數(shù)碼管,除了
    發(fā)表于 03-14 13:04 ?3.5w次閱讀
    共陽極<b class='flag-5'>7</b><b class='flag-5'>段數(shù)碼管</b>

    7段數(shù)碼管顯示實(shí)驗(yàn)報(bào)告

    EDA實(shí)驗(yàn)中,7段數(shù)碼管顯示實(shí)驗(yàn)報(bào)告,程序和波形仿真。
    發(fā)表于 11-24 14:50 ?0次下載

    【實(shí)驗(yàn)114】紅外解碼數(shù)碼管顯示

    HL配套C實(shí)驗(yàn)例程紅外解碼數(shù)碼管顯示,配合開發(fā)板學(xué)習(xí)效果更好。
    發(fā)表于 04-11 17:14 ?24次下載

    段數(shù)碼管驅(qū)動(dòng)方式_七段數(shù)碼管怎么接

    本文首先介紹了七段數(shù)碼管驅(qū)動(dòng)方式,其次介紹了七段數(shù)碼管引腳圖,最后介紹了七段數(shù)碼管引腳連接方法。
    發(fā)表于 10-09 11:16 ?1.7w次閱讀

    7段數(shù)碼管顯示實(shí)驗(yàn)的Proteus仿真電路圖和程序免費(fèi)下載

    7段數(shù)碼管顯示 包括2個(gè)任務(wù)1:protues上仿真實(shí)現(xiàn)8個(gè)數(shù)碼管動(dòng)態(tài)顯示0~7,2:在實(shí)驗(yàn)箱上完成8個(gè)數(shù)碼管動(dòng)態(tài)顯示0~
    發(fā)表于 12-10 08:00 ?13次下載
    <b class='flag-5'>7</b><b class='flag-5'>段數(shù)碼管</b>顯示實(shí)驗(yàn)的Proteus仿真電路圖和程序免費(fèi)下載

    使用Proteus實(shí)現(xiàn)7段數(shù)碼管顯示的實(shí)驗(yàn)資料合集免費(fèi)下載

    7段數(shù)碼管顯示 包括2個(gè)任務(wù)1:protues上仿真實(shí)現(xiàn)8個(gè)數(shù)碼管動(dòng)態(tài)顯示0~7,2:在實(shí)驗(yàn)箱上完成8個(gè)數(shù)碼管動(dòng)態(tài)顯示0~
    發(fā)表于 06-19 08:00 ?24次下載
    使用Proteus實(shí)現(xiàn)<b class='flag-5'>7</b><b class='flag-5'>段數(shù)碼管</b>顯示的實(shí)驗(yàn)資料合集免費(fèi)下載

    C51單片機(jī)實(shí)驗(yàn)——7段數(shù)碼管實(shí)驗(yàn)

    實(shí)驗(yàn)二 7段數(shù)碼管實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:7段數(shù)碼管實(shí)驗(yàn)實(shí)驗(yàn)環(huán)境:普中實(shí)驗(yàn)系統(tǒng);Keil μVision 4軟件;實(shí)驗(yàn)?zāi)康模海?)掌握7
    發(fā)表于 11-23 16:36 ?19次下載
    C51單片機(jī)實(shí)驗(yàn)——<b class='flag-5'>7</b><b class='flag-5'>段數(shù)碼管</b>實(shí)驗(yàn)

    led數(shù)碼管碼是如何確定的,led數(shù)碼管碼怎么求

    根據(jù)所選用的LED數(shù)碼管的極性(共陽極還是共陰極)以及數(shù)碼中每一個(gè)筆的引腳與CPU(或其它控制芯片) IO口的引腳的連接來定(稱自定的碼表)。一般資料上提供的
    的頭像 發(fā)表于 07-21 11:43 ?8399次閱讀
    led<b class='flag-5'>數(shù)碼管</b>的<b class='flag-5'>段</b>碼是如何確定的,led<b class='flag-5'>數(shù)碼管</b>的<b class='flag-5'>段</b>碼怎么求

    7段數(shù)碼管共陰共陽如何顯示數(shù)字

    7段數(shù)碼管是一種常見的顯示設(shè)備,用于顯示數(shù)字和部分字母。它由7個(gè)LED發(fā)光二極組成,每個(gè)LED可以獨(dú)立控制,從而實(shí)現(xiàn)數(shù)字和字母的顯示。 一、共陰共陽
    的頭像 發(fā)表于 08-28 16:19 ?1493次閱讀