none
關於 windows forms 開發時,同一個 form 涵蓋多個功能中輸入項的命名或處理方式 RRS feed

  • 問題

  • 想請問一個設計問題,

    以前開發專案都是用 Web,目前接到一個是要相容舊版 DOS 軟體的操作方式,而且都是單機使用,所以以自己比較不習慣的 windows forms 來開發,好家在 C# 其實不管是 web 或 forms 都是很類似的,forms 之前也有開發過一些比較小型的案子,也算是還 ok。

    但在 web 方式很習慣的多功能(ACCOUNTS, CONTACTS, ORDERS 等)的清單顯示+搜尋,各項功能的"編輯與修改"、清單、詳細畫面都是在不同頁面,控制項可以直接命名為 NAME,PHONE,ADDRESS 這種形式,功能與功能之間欄位命名不會有衝突。

    但在 windows forms 中,我目前使用 TabControl,發現所有物件名稱都會混在一起,相當頭痛,如果加前綴,也是一個解法,例如搜尋輸入項:

    textBoxACCOUNTS_SEARCHVIEW_Name, textBoxACCOUNTS_SEARCHVIEW_Phone, textBoxACCOUNTS_SEARCHVIEW_Address,

    textBoxCONTACTS_SEARCHVIEW_Name, textBoxCONTACTS_SEARCHVIEW_Phone, textBoxCONTACTS_SEARCHVIEW_Address

    新增與編輯控制項:

    textBoxACCOUNTS_EDITVIEW_Name, textBoxACCOUNTS_EDITVIEW_Phone, textBoxACCOUNTS_EDITVIEW_Address,

    textBoxCONTACTS_EDITVIEW_Name, textBoxCONTACTS_EDITVIEW_Phone, textBoxCONTACTS_EDITVIEW_Address

    顯示來電的 DataGridView 中的 Column:

    IncomingCalls_Name, IncomingCalls_Status, IncomingCalls_Phone

    但是總感覺這不是個辦法,例如 DataGridView 中的 Column,如果在欄位名稱上加前綴在 binding 的時候會增加 DataSource 欄位命名的困擾,要在原始表那邊去做別名才能對應到 DataGridView 中的 Column,相當麻煩。

    有幾個解法:

    . 呼叫不同的 form

    . 使用 使用者控制項 將每個功能用到的 EDITVIEW 跟 LISTVIEW 分開包裝過,再個別引入

    . 繼續用前綴

     

    不知道各位前輩有什麼建議給小弟嗎?這算是一個設計觀念問題拉,不算是實際元件操作問題... 先感謝拉

    或者是有沒有開源的大型 windows forms 專案可以參考,我在 sourceforge 那邊搜尋 windows forms 找到的都是比較小的專案...

    2010年10月6日 下午 03:31

解答

  • 這個是 Naming Style 的問題,不論是 Web 還是 Windows Application,基本上命名的方式都差不多,沒有因為應用程式類型不同而改變。
    依照你的 case,用前綴命名方式是比較清楚,但問題就是名稱都會過長,在輸入上比較麻煩。

    可以試著:

    1. 縮短控制項前綴字,例如 textBox 改為 txt。
    2. 使用 user control 包裝,以明確切割出元件的功能,如此命名也可以再縮短。
    3. 如果都不行,就早點習慣它吧。


    以下為簽名檔,請勿對號入座:
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白
    • 已標示為解答 DragoonChang 2010年10月8日 上午 09:15
    2010年10月7日 上午 12:42
    版主

所有回覆

  • 我會用 "繼續用前綴" , 即使在不同Form也一樣. 可能因為我寫Windows Form習慣了吧.

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年10月6日 下午 03:43
    版主
  • 這個是 Naming Style 的問題,不論是 Web 還是 Windows Application,基本上命名的方式都差不多,沒有因為應用程式類型不同而改變。
    依照你的 case,用前綴命名方式是比較清楚,但問題就是名稱都會過長,在輸入上比較麻煩。

    可以試著:

    1. 縮短控制項前綴字,例如 textBox 改為 txt。
    2. 使用 user control 包裝,以明確切割出元件的功能,如此命名也可以再縮短。
    3. 如果都不行,就早點習慣它吧。


    以下為簽名檔,請勿對號入座:
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白
    • 已標示為解答 DragoonChang 2010年10月8日 上午 09:15
    2010年10月7日 上午 12:42
    版主
  • .Net 不同 Form 有各自的命名空間,不太需要這麼長的命名吧...

    我只有 Public / Friend 的屬性或方法會比較慎重,就算慎重,也不會取個超長的,也是以精簡意義為主,其他按習慣爽就好。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年10月7日 下午 03:25