yj hung

C# Using Controls.Find to control[WinForm]

前言 因在使用表格填入數字時會因為很多重復動作,就在思考有甚麼方式能夠寫成For迴圈之類形式最後真的找到使用Controls.Find,能把指定形式寫成迴圈 定義 Namespace:System.Windows.FormsAssembly:System.Windows.Forms.dll Searches for controls by their Name property and builds an array of all the controls that match. 範例設置與Coding 先使用TablelayoutPanel創建出一個表格,在把表格內填入Label並命名lbRange_Zone”X”這邊X為代表數字 範例程式 這邊先填入16格數字成200並把其變成紅色這邊一步一步來拆解解釋 Label tbx = this.Controls.Find((“lbRange_Zone” + count.ToString()), true).FirstOrDefault() as Label;這邊因為控制Label因此宣告方式是藍字部分,可以改變看要控制哪些項目做對應更動,紅字部分則是更操作的物件名稱下面就可以針對元件做控制了 參考 [WinForm]使用 Controls.Find 取得/給予控制項資料 Find control by name from Windows Forms controls

C# Using Controls.Find to control[WinForm] Read More »

C# Mouse Contrul In Visual Studio

前言 本章將講述mouse操作範例code(以下控制動作不限於在Form裡) 定義 命名空間:System.Windows.Forms組件: 表示用來繪製滑鼠指標的影像。 繼承Object->Cursor / 屬性TypeConverterAttribute / 實作IDisposableISerializable 範例code 控制滑鼠移動到某個位置 控制滑鼠點擊就需要呼叫API了,第一步是先宣告滑鼠事件API 控制滑鼠左鍵按下 控制滑鼠左鍵放開 PS: 控制滑鼠右鍵/中鍵,只要改一下MOUSEFLAG就可以了 點一下(點擊) 連點兩下 拖曳 Doma結果 按下test後鼠標會移動到下籃框位置並顯示座標,這邊第一步是先抓取textbox在畫面上的座標位置並把他先設定零點 參考 [C#] 控制滑鼠移動, 點一下, 連點兩下, 拖曳 Cursor 類別

C# Mouse Contrul In Visual Studio Read More »

C# Float and Double Convert to Hexadecimal

前言 因MCU或uDrive在傳輸給UI時Double和Float會透過IEEE754轉成16進制傳輸,因此這邊會介紹2種方法去轉成16進制與範例程式以供參考 理論 浮點數表達式是計算機內用來表示小數的方法,由IEEE規定組成格式,並用有32 bits單精度(float)與64 bits雙精度(double)的資料型態 浮點數的表達方法主要由4個參數組成,分別是正負符號、尾數(m)、基數(n)、指數(e) : 可以看到右圖,主要Float 與Double不同地方是在尾數存取與指數位精準位數不同,這邊先以Float為範例推演給各位觀看如下圖 範例程式 Double converter to Hex Float converter to Hex Hex converter to Float Hex converter to Double Doma結果 其他方法 上面為通用方法,但可以看到存取位元較多今天如果想讓存取位元較少可以參考下面範例,但有條件限制如下 * matrix format:* size: 32 bits* bit[0]: +/-* bit[7:1]: integer* bit[31:8]: decimal* max.: 127.9999999* min.: -127.9999999 Double converter to Hex Hex converter to Double gains

C# Float and Double Convert to Hexadecimal Read More »

C# Substring 定義及七種用法(分割拆解認關鍵字方法)

前言 因我們可由COM PORT接收到MCU資訊,但其資料是一串字串並未分隔。EX: 由MCU輸出”System restart \n\r” +”MCU restart ok\r\n”=>這邊C# UI接收到的會是”System restart \n\rMCU restart ok\r\n”不會切割成2句文字因此本章節會介紹如何做字串切割如下清單與確認關鍵字,方便資料讀取 從字串取得部份字串 從字串取得前面n個字元部份字串 取得部份字串從指定的 startIndex 處開始, endIndex:到指定的 endIndex處結束 取得某個字元後或前的部份字串 傳回字串第一次出現位置 取得兩字串間的部份字串 用字元分離字串再分離字串成部份字串 C#對中文字串的擷取 定義 命名空間:System組件:mscorlib.dll, netstandard.dll 從這個執行個體擷取子字串。 這個成員是多載的。 如需這個成員的完整資訊,包含語法、使用方式和範例,請按一下多載清單中的名稱。 程式範例 C# String.Substring 方法 在C#跟.NET中,字串可以用字串型別來表示,String.Substring方法是C#裡從字串的執行個體擷取部份字串,這個方法有兩個多載的方式: Substring(Int32):從字串執行個體擷取部份字串。 部份字串會在指定的字元位置開始並繼續到字串的結尾。 Substring(Int32, Int32):從字串執行個體擷取部份字串。 部份字串起始於指定的字元位置,並且具有指定的長度 從字串取得前面n個字元部份字串 字串的字元是從0開始索引的,字串第一個字元的位置是從0開始的。 假設你要從字串中取得前面12個字元的部份字串,可以使用Substring方法傳遞開始的索引0跟12的長度,就可以從字串取得前面12個字元的部份字串。 取得部份字串從指定的 startIndex 處開始, endIndex:到指定的 endIndex處結束 Substring方法的第一個參數是部份字串開始的索引,第二個參數是包括空白字元在內的字元數,可以使用String. Length找出字串結束的位置。 下面的範利用來找第八個位置到最後的部份字串 也可以透過Substring的第二參數來取得一些字元,下面的範例可以從第八個位置取得15個字元的字串。 取得某個字元後或前的部份字串 使用Substring取得第一次出現的指定字元前的部份字串,可以透過第一個參數為0,第二個參數為指定字元的位置(長度)來做。PS:此用法為UI中切割出資料主要用法 下面的程式是取得指定字元後的部份字串:

C# Substring 定義及七種用法(分割拆解認關鍵字方法) Read More »

C# WindowForm COM Port 連接/傳送/接收資料完整建置

前言 序列埠(Serial port),也稱序列埠或序列埠,序列通信埠,COM埠,簡稱串口。主要用於序列式逐位資料傳輸。常見的有一般電腦應用的RS-232(使用 25 針或 9 針連接器)和工業電腦應用的半雙工RS-485與全雙工RS-422。首先我們因為編寫一個UI介面要與STM32板子相互連接資料傳輸,第一步就是撰寫COM Port Demo效果 前置作業 程式架構為:按下button,進行RS232連線,並在Listbox顯示可連線之COM Port與連線狀態。連線成功後,將MCU傳輸值顯示在Listbox上。 PS:這邊注意開啟的專案有2個選擇是.NET Framework才會在工具列裡出現SerialPort的選項 程式範例 1.首先宣告一個Serial變數 2.撰寫button點擊後動作 3.進行串列埠連線(因這邊有撰寫BaudRate可以透過外部文件改寫所以有一點點不同) 4.撰寫關閉Com Port 5.撰寫連接觸發事件 7.串列埠接收資料事件 額外功能 串列埠傳送資料 斷開串列埠 得到可用串列埠號 PS:這邊注意serialPort1.Dispose();與serialPort1.Close(); 2者不同處是Dispose()是釋放全部內存,Close()是完全斷開並釋放內存 參考 C#中COM串列埠連線、傳送、接收資料

C# WindowForm COM Port 連接/傳送/接收資料完整建置 Read More »

Theory For Field Oriented Control -1

Preface We will be discussing the ‘Y-type winding brushless DC motor’, and will explain the motor type, principle of rotation, control methods, theoretical control, and step-by-step implementation. are shown in the following figure. Principle of Motor Rotation The two circular magnets in the figure below will rotate due to the rotation of the upper magnet,

Theory For Field Oriented Control -1 Read More »

Shopping Cart