這是前幾天在PTT Visual_Basic版看到的網友發問,

他的作業是想要寫一個矩陣計算程式,支援各階矩陣,

所以程式本身必須先能依使用者輸入的階乘數 N ,自動展開 N×N 個格子供使用者輸入每個矩陣元。

 

本來我的想法是:「咦!我好像還沒看過哪本書上有寫到,什麼程式碼可以產生一個物件(如 Textbox)的喔?」

Google 找一找,還真的找不到 -_-,當然,也有可能是關鍵字太難設了,怎麼找都找到一堆不相關的東西,

後來我乾脆放棄這個簡單的想法,想用 DataGrid 或 MSFlexGrid 來完成這個任務,

DataGrid 支援隨時輸入資料到方格里,而且理論上 DataGrid、MSFlexGrid 都支援以程式碼控制其行數與列數的,

(雖然他們本來都只是拿來放資料庫的資料而已 -_-)

不過測試之下,DataGrid 好像不能控制其行、列數,

MSFlexGrid 可以,但卻不能像 DataGrid 一樣任意輸入文字,純粹只能 Show 程式碼裡寫好的東西,

上 Google 找了一下,發現大家都有這個問題,然後大陸網站提供的程式碼...打不開!有的打開了,裡面卻寫一堆似是而非的東西 -_-

最後,我決定在 MSFlexGrid 的 Click 事件設定成跳出 InputBox,並將由 InputBox 獲得的資料,指定給自定義的二維陣列(以座標為index),

要做矩陣計算時,再拿陣列的元素,依矩陣計算方法來做計算的話,應該是再簡單不過了,

哇哈,這樣還真的就成了,

關鍵的 MSFlexGrid Click 事件中,測出 MSFlexGrid 支援提供每個格子的座標,所以就可以依座標、指定每一陣列元素,代表每一格的值了。

註解比程式碼還多..

沒辦法,怕那個發問的網友,想不出怎麼解決問題之外,還要花時間去看懂我寫的鳥程式,好人還是要做到底比較好。

專案檔下載

genlee 發表在 痞客邦 PIXNET 留言(0) 人氣()