創作內容

7 GP

【C#】用程式判斷已存在的COM

作者:落葉無聲│2011-07-06 17:50:45│巴幣:14│人氣:5692
類型: C#學習筆記

目的: 用程式判斷已存在的COM

前言: 説明可能亂七八糟. . . 一個非寫程式出身的孩子留. . .



和原程式之差別

本來在寫選擇COM的方法, 是列出一大堆的COM讓使用者選擇, 但這非常的不實用 (如下圖, 我只有提供COM1到COM15可以選). 使用者對著那麼多COM去選擇有連接電腦的硬體, 其實還滿不方便的, 也許每一次要用程式前, 都還要去查看Device Management. 而且假設有超過COM16的, 就找不到了, 因為我只有寫到COM15 (聽說最大是到COM256).



很早就知道可以在開程式時, 去檢查看有什麼COM是存在的, 但一直沒有個頭序 . 這兩天在我們家RD頭目指點下, 終於寫出來了!!!

Combo欄位只會顯示存在的COM(如下圖只出現COM9). 感覺這樣寫和原來的方法比起來, 好像利害了一點(羞)





程式碼說明

//我是用自己寫的程式做説明, 部份和此主題不相關的已刪除

//加入Namespace
using System.IO.Ports;

namespace CodePageTest
{
    public partial class Form__CodePateTest : Form
    {
        // 產生一個Port
        SerialPort VFDPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

        //取得存在的COM. 如果存在二個COM則是在COMPorts[0]和COMPorts[1], 以此類推
        String[] COMPorts = SerialPort.GetPortNames();
        
        //寫一個將存在的COM寫入Combo.Text的方法.
        // CB_COM是我命名該Combo之名稱
        private void CB_COM_Click()
        {
            //先將原來在Combo裡頭的內容清掉, 避免重覆寫入
            CB_COM.Items.Clear();
           
            //將找到之現有COM加入Combo,Text中.

            foreach (string port in COMPorts) { CB_COM.Items.Add(port); }
        }
        
        private void Form__CodePateTest_Load(object sender, EventArgs e)
        {
            // Form Load時, 如有現存的COM, 執行下面程式
            if (COMPorts.Length >= 1)
            {
                //改變SerialPort的PortName為現存的COM, 因為Default之設定為COM1.
                VFDPort.PortName = COMPorts[0];
                
                //Combo.Text先Show一個現存的COM.

                CB_COM.Text = COMPorts[0];
                
                //將方法帶入,
所有的現存COM加入Combo,Text
                CB_COM_Click();
            }
        }

        //最後只要將使用者所選擇的COM帶入PortName即可.
        private void CB_COM_SelectedIndexChanged(object sender, EventArgs e)
        {
            VFDPort.PortName = CB_COM.Text;
        }



後記: 這說明大概只有我自己看的懂. . .

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=1355201
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:C#|程式

留言共 9 篇留言

CSK
程式好久沒碰了。

07-06 17:55

落葉無聲
我也半年多沒碰, 這一個程式開始寫時, 我連for要怎麼寫都忘了 XD 07-06 17:59
☀゚傲風
痛苦的回憶...

07-06 18:26

落葉無聲
這不是我的本業, 一一" 玩起來滿有意思的 (大概是對一個不用每天去寫的人而言)~ 而且上班時 學這個不會被唸~ 07-06 18:28
爆肝冰果王
我...我看不懂[e33]

07-06 21:18

落葉無聲
呵 這算是筆記, 通常寫的人才看的懂 XD07-06 22:02
韋伯斯特吉
最近在搞工業用程式.....Easy~呵~
以前只過VB~但那已經是過去式了...

07-06 22:13

落葉無聲
有空常來幫我看看~ 我是初心者~07-06 22:16
絕倫逸群
有看沒有懂囧

07-06 23:42

落葉無聲
還是謝謝來訪~ [e12]07-06 23:43
韋伯斯特吉
你是初心者.我是砍掉重練中...
在寫任何程式這件事時.請保持腦袋清醒和冷靜..
我們裡面好幾個.寫到暴走的暴走.睡著的睡著.
唉...不知該如何形容..

07-07 00:03

落葉無聲
真的 有時候debug到快要瘋掉. . .!!07-07 13:07
哈哈小熊
來破解鎖ltp1的

07-07 09:53

落葉無聲
LPT和我比較有關係. . .LTP就比較沒有了 QQ07-07 13:08
菲斯特
[e18]好久好久沒碰過了

07-07 20:06

落葉無聲
原來這裡有那麼多的前輩, 我其實學沒多久, 尚在摸索中~07-08 10:27
Unreal
恩.......出生到現在沒碰過...
好複雜阿這...

07-07 22:47

落葉無聲
我一開始也這麼覺得, 這個和打電動一樣, 會越來越順手~07-08 10:27
我要留言提醒:您尚未登入,請先登入再留言

7喜歡★rovingleaves 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【心得】凱薩琳 / 困難... 後一篇:【C#】649大樂透號碼...

追蹤私訊切換新版閱覽

作品資料夾

manbobo2002大家
輕小說【解決少子化的自願配偶計劃】第6章已更新, 歡迎大家來看看^^看更多我要大聲說9小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】