使用 .NET Framework 建立 Windows Form 應用程式 (C++)
更新:2007 年 11 月
在 .NET 開發中,Windows GUI 應用程式是稱為 Windows Form (或 Winforms) 應用程式。一般而言,使用 Visual C++ 開發 Windows Form 專案與使用任何其他 .NET 語言 (例如 Visual Basic 或 C#) 都是一樣的。
以 Visual C++ 撰寫的 Windows Form 應用程式會以新的 Visual C++ 語法來使用 .NET Framework 類別和其他 .NET 功能。如需詳細資訊,請參閱 Language Features for Targeting the CLR。
在本程序中,您會使用工具箱中的幾個標準控制項來建立 Windows Form 應用程式。在完成的應用程式中,使用者可以選取某個日期,文字標籤則會顯示使用者所選擇的日期。
必要條件
本主題假設您已了解 C++ 語言的基礎。如果您才剛開始學習 C++,建議您參考 Herb Schildt 所著的《C++ Beginner's Guide》。您可以在 https://www.microsoft.com/taiwan/vstudio/ 找到這份文件的線上版本。
如需觀看示範影片,請參閱影片 HOW TO:使用 .NET Framework 建立 Windows Form 應用程式 (C++) (英文)。
若要建立新的 Windows Form 專案
在 [檔案] 功能表上,按一下 [新增],然後再按一下 [專案...]。
在 [專案類型] 窗格中,選取 [Visual C++] 節點中的 [CLR],然後選取 [範本] 窗格中的 [Windows Form 應用程式]。
輸入專案名稱,例如 winformsapp。您可以接受預設位置、輸入某個位置,或瀏覽至您要儲存此專案的目錄。
[Windows Form 設計工具] 隨即開啟,並會顯示您所建立之專案的 [Form1],如下所示:
若要將控制項加入至表單
如果看不到 [工具箱] 視窗,請按一下 [檢視] 功能表上的 [工具箱]。
將 [工具箱] 中的三個控制項放到 [Form1] 設計介面上:
將 Label 控制項拖曳至 [Form1] 的左上角附近
將 DateTimePicker 控制項拖曳至 Label 控制項的正下方。
將 Button 控制項拖曳至表單底部靠近中央的位置
您的表單應該會與以下相似:
若要設定表單和控制項的屬性
按一下表單表面的任何空白區域,以選取表單。
如果看不到 [屬性] 視窗,請按一下 [檢視] 功能表上的 [屬性] (或按 F4)。
您可能需要關閉 [工具箱] 以騰出更多空間。
現在要設定表單的 [Text] 屬性 (顯示在表單的標題列中),請在 [屬性視窗] 中按一下 [Text] 屬性的右邊,然後輸入:
日期選擇器
按一下標籤予以選取,並將它的 [Text] 屬性設為
Choose a date:。
按一下按鈕予以選取,並將它的 [Text] 屬性設定為
OK。
這個表單應該會與以下相似:
撰寫事件處理常式程式碼
在這一節中,您要撰寫下列事件發生時所要執行的程式碼:
DateTimePicker 控制項上的 ValueChanged 事件。
若要撰寫處理事件的程式碼
按兩下按鈕加入按鈕的 Click 事件處理常式 (按鈕的預設事件就是 Click 事件)。
這個動作會在編輯區域索引標籤頁面所顯示之表單的程式碼檢視中,產生空的事件處理常式方法。
將游標移到 button1_Click 方法的左邊大括號之後,按 ENTER,然後輸入該事件發生時所會執行的下列程式碼:
Application::Exit();
在輸入範圍解析運算子 (::) 之後,IntelliSense 便會顯示有效選項的清單。您可以從清單中選擇並按 TAB、按兩下該選項,或是繼續輸入。
按一下編輯區域中的 [Form1.h [設計]] 索引標籤,或是在 [檢視] 功能表上按一下 [設計工具],即可返回 [設計] 檢視。
按一下 DateTimePicker 控制項。
現在要加入 DateTimePicker 控制項的 ValueChanged 事件處理常式,請按一下 [屬性] 視窗中的閃電圖示以顯示該控制項的事件。
按兩下 [ValueChanged] 事件,在 [程式碼] 檢視中產生空事件處理常式。
注意事項: ValueChanged 是 DateTimePicker 控制項的預設事件。因此,您也可以按兩下 DateTimePicker 控制項產生空事件處理常式。
將游標移到 dateTimePicker1_ValueChanged 方法的左邊大括號之後,按 ENTER,然後輸入事件發生時所會執行的下列程式碼:
label1->Text=String::Format("New date: {0}", dateTimePicker1->Text);
當此應用程式的使用者選取某個新日期時,標籤的 Text 屬性就會設為常值字串 "New date:",而 DateTimePicker 的 Text 屬性則會附加至該字串。
Visual Studio 提供了數個可簡化程式碼輸入的功能:
當您輸入箭號運算子 (->) 時,IntelliSense 便會顯示有效的選項,讓您從清單中挑選。
當您輸入方法的左括號時,工具提示視窗會針對該方法的每一個多載顯示有效的引數。若要檢視不同的多載,請使用向上或向下鍵
自動完成功能可以依據您輸入的文字自動幫您輸入完整的變數名稱或成員。例如,如果您輸入 String::Fo 然後按 Ctrl - 空格鍵,或按 Tab 鍵,Visual Studio 就會幫您輸入完整的 String::Format
若要建置及執行程式
在 [建置] 功能表中,按一下 [建置方案]。
如果發生了任何錯誤,請按一下 [輸出] 視窗中的 [移至下一個訊息] 按鈕。錯誤訊息會顯示在狀態列中,按兩下任何錯誤,即可移至原始程式碼中發生該錯誤的那行程式碼。
從 [偵錯] 功能表按一下 [執行而不偵錯]。您所建置的應用程式便會出現。
按一下 DateTimePicker 上的向下箭號並選取某個日期,以測試應用程式。標籤文字會變更為顯示您所選取的日期,如下所示:
您可以將更多功能加入至這個應用程式,例如功能表、其他表單以及說明檔,請您勇於實驗。
後續步驟
上一個主題:建立 Win32 應用程式 (C++) | 下一個主題:建立 Windows Form 控制項 (C++)