更新:2007 年 11 月
本主題旨在讓您通過使用 Windows 窗體生成相對簡單的 C# 程序來熟悉 Visual C# 速成版集成開發(fā)環(huán)境 (IDE) 的各個元素。Windows 窗體為您的項目提供構(gòu)成標(biāo)準(zhǔn) Windows 應(yīng)用程序用戶界面 (UI) 的各個組件,,如對話框,、菜單、按鈕及許多其他控件,?;旧希@些控件只是 .NET Framework 類庫中的類,。使用 Visual C# 速成版中的“設(shè)計器”視圖,,可以將控件拖動到應(yīng)用程序的主窗體上并調(diào)整其大小和位置。在執(zhí)行此操作時,,IDE 會自動添加源代碼以創(chuàng)建適當(dāng)?shù)念惖膶嵗ζ溥M(jìn)行初始化,。
本示例演示如何創(chuàng)建您自己的 Web 瀏覽器應(yīng)用程序,可以自定義此 Web 瀏覽器應(yīng)用程序,添加個人喜愛的網(wǎng)站的快捷方式,。
在本節(jié)中,,您將學(xué)習(xí)如何完成下列任務(wù):
-
創(chuàng)建新的 Windows 窗體應(yīng)用程序。
-
在“代碼”視圖和“設(shè)計器”視圖之間切換,。
-
更改 Windows 窗體的屬性,。
-
添加 MenuStrip 控件。
-
添加 Button 控件,。
-
創(chuàng)建和填充 ComboBox 控件,。
-
使用 WebBrowser 控件。
-
為控件創(chuàng)建事件處理程序,。
有關(guān)視頻演示,,請參見 Video How to: Create a C# Windows Forms Application(視頻幫助:創(chuàng)建 C# Windows 窗體應(yīng)用程序)。
創(chuàng)建 C# Windows 應(yīng)用程序
-
在“文件”菜單上單擊“新建項目”,。
將出現(xiàn)“新建項目”對話框,。此對話框列出了 Visual C# 速成版能夠創(chuàng)建的不同的默認(rèn)應(yīng)用程序類型。
-
選擇“Windows 窗體應(yīng)用程序”作為您的項目類型,。
-
將應(yīng)用程序的名稱更改為“Web 瀏覽器”,。
-
單擊“確定”。
Visual C# 速成版為項目創(chuàng)建一個按項目標(biāo)題命名的新文件夾,,然后在“設(shè)計器”視圖中顯示標(biāo)題為 Form1 的新的 Windows 窗體,。可以隨時在該視圖和“代碼”視圖之間切換,,方法是右擊設(shè)計圖面或代碼窗口,,然后單擊“查看代碼”或“視圖設(shè)計器”。
在“設(shè)計器”視圖中看到的 Windows 窗體是將在應(yīng)用程序打開時打開的窗口的可視表示形式,。在“設(shè)計器”視圖中,,可以將“工具箱”中的各個控件拖動到窗體上。這些控件并不是真正“活動”的,;它們僅僅是可以很方便地在窗體上四處移動至精確位置的圖像而已,。
將控件拖放到窗體之后,Visual C# 在幕后運行,,創(chuàng)建在程序運行時正確定位真實控件的代碼,。這些源代碼包含在一個文件中,該文件通常嵌套在其他對象中,,因而無法看到,。如果展開 Form1.cs,會在“解決方案資源管理器”中看到該文件,,它的名稱為 Form1.designer.cs,。
-
如果在“代碼”視圖中,,則可以切換到“設(shè)計器”視圖,方法是右擊代碼窗口,,然后單擊“視圖設(shè)計器”?,F(xiàn)在可以更改 Windows 窗體的大小。
-
單擊 Windows 窗體的右下角,。
-
當(dāng)指針變?yōu)殡p向箭頭時,,拖動窗體的角,直到其長和寬至少為屏幕的四分之一,。
由于這是將用來顯示網(wǎng)頁的窗口,,因此它不應(yīng)太狹窄。
-
-
確保顯示“屬性”窗口,。該窗口的默認(rèn)位置在 IDE 的右下部,,但您可以根據(jù)需要移動到其他位置。在下圖中該窗口位于右上角,。如果沒有顯示“屬性”窗口,,請單擊“視圖”菜單上的“屬性”窗口。該窗口列出了當(dāng)前所選的 Windows 窗體或控件的屬性,,并且您可以在此處更改現(xiàn)有的值,。
-
更改 Windows 窗體的標(biāo)題。
-
單擊窗體將其選定,。
-
在“屬性”窗口中,,向下滾動到“Text”,選擇文本“Form1”并鍵入“Web 瀏覽器”,。
-
按 Enter 或 Tab 將焦點移出“Text”文本框,。
現(xiàn)在,,您會看到 Windows 窗體頂部的文本(在稱為標(biāo)題欄的區(qū)域中)已更改,。
若要快速更改控件的名稱,請右擊相應(yīng)控件,,然后單擊“屬性”,。可以在“名稱”屬性中鍵入該控件的新名稱,。
-
-
單擊工具欄上的“工具箱”按鈕,,或者在“視圖”菜單上單擊“工具箱”。向下滾動控件列表并展開“菜單和工具欄”,,直到看到 MenuStrip,。將此控件拖到 Windows 窗體上的任何位置。
此控件在窗體的頂部創(chuàng)建一個默認(rèn)菜單,。
-
在顯示“請在此處鍵入”的框中,,鍵入菜單名稱,,在本例中為“導(dǎo)航”。按 Enter 鍵時,,將出現(xiàn)新的空框以創(chuàng)建其他菜單和菜單項,。在位置較低的框中,鍵入“主頁”,。按 Enter,,將顯示更多的框。鍵入“返回”,。按 Enter 鍵,,并鍵入“前進(jìn)”。
這些菜單項構(gòu)成基本的網(wǎng)站導(dǎo)航控件,。
-
添加按鈕,。
在“工具箱”的“公共控件”類別中,將一個 Button 控件拖動到大約在 Windows 窗體中間的位置,,緊靠菜單欄下,。在“屬性”窗口中,將“Text”屬性更改為“轉(zhuǎn)到”而不是“button1”,,并將類似“(名稱)”的設(shè)計名稱從“button1”更改為“轉(zhuǎn)到按鈕”,。
-
添加“組合框”。
在“工具箱”的“公共控件”類別中,,拖動 ComboBox 控件并將它放置到新按鈕的左側(cè),。拖動邊緣和角以調(diào)整該“組合框”的大小和位置,直到它與按鈕對齊,。
說明: 在 Windows 窗體上移動控件時,,將出現(xiàn)藍(lán)色的線條。這些線條是幫助您垂直和水平對齊控件的參考線,。也可以通過一次選擇多個控件來對齊它們,。可以通過如下方法來實現(xiàn)此目的:單擊并拖動一個選擇框來包圍這些控件,,或在按住 Shift 的同時單擊它們,。選定多個控件后,可以使用對齊和調(diào)整大小圖標(biāo)修改對齊方式和大小,。這些圖標(biāo)顯示在“設(shè)計”窗口頂部的“布局工具欄”上,。
-
填充 ComboBox。
ComboBox 提供一個選項下拉列表,,用戶可以從該列表中進(jìn)行選擇,。在此程序中,ComboBox 將包含您收藏的用于快速訪問的網(wǎng)站列表,。
要創(chuàng)建站點列表,,請選擇 ComboBox 并查看其屬性,。選擇“Items”屬性,您將看到文字“(集合)”和一個省略號按鈕(“...”),。單擊此按鈕可更改 ComboBox 的內(nèi)容,。添加所需數(shù)量的網(wǎng)站 URL,在添加每個 URL 后按 Return 鍵,。
說明: 請確保每個網(wǎng)站地址前面都包含 http://,。
-
添加 WebBrowser 控件。
從“工具箱”的“公共控件”類別中,,向下滾動直至找到 WebBrowser 控件,。將該控件拖動到 Windows 窗體。調(diào)整 WebBrowser 控件的大小,,使其在 Windows 窗體中的大小合適,,不會遮擋 ComboBox 和 Button 控件。如果不好調(diào)整 WebBrowser 控件的大小,,請首先將它設(shè)置為所需的大小,,打開它的屬性,找到 Dock 設(shè)置,,并確保將它設(shè)置為“無”,。如果將 Anchor 設(shè)置設(shè)為“Top”、“Bottom”,、“Left”,、“Right”,則會使 WebBrowser 控件在您調(diào)整應(yīng)用程序窗口的大小時適當(dāng)?shù)卣{(diào)整自己的大小,。
WebBrowser 控件是執(zhí)行呈現(xiàn)網(wǎng)頁的所有復(fù)雜工作的控件,。在應(yīng)用程序中通過 WebBrowser 類的實例來訪問它。查看 form1.Designer.cs,,您將看到應(yīng)用程序代碼中已添加了此類的一個實例,,以及一些表示您使用設(shè)計器添加的其他項的類的實例。在對控件添加事件處理程序和調(diào)用方法時,,將使用這些實例,。
-
為 Button 事件添加事件處理程序,。
現(xiàn)在,,您已完成應(yīng)用程序的設(shè)計階段,此時可以開始添加一些代碼以提供程序的功能,。
程序必須具有針對按鈕和每個菜單選項的事件處理程序,。事件處理程序是在用戶與控件交互時執(zhí)行的方法。Visual C# 速成版自動為您創(chuàng)建空的事件處理程序,。
雙擊該按鈕,,將顯示項目的代碼編輯器,。您還會看到已為您創(chuàng)建了 click 事件的事件處理程序,此事件是在用戶單擊按鈕時出現(xiàn)的事件消息,。向此事件處理程序方法中添加代碼,,以使它類似于以下代碼。
C#private void goButton_Click(object sender, System.EventArgs e)
{
webBrowser1.Navigate(new Uri(comboBox1.SelectedItem.ToString()));
}此代碼獲取“ComboBox”控件的當(dāng)前選定項(一個包含 Web URL 的字符串),,并將其傳遞給 Web 瀏覽器的 Navigate 方法,。Navigate 方法在該位置加載并顯示網(wǎng)頁的內(nèi)容。
-
為 MenuStrip 選項添加事件處理程序,。
返回“設(shè)計器”窗口,,并依次雙擊菜單中的每個子項。Visual C# 速成版會為每個子項創(chuàng)建事件處理程序方法,。編輯這些方法,,使它們類似于以下代碼。
C#private void homeToolStripMenuItem_Click(object sender, System.EventArgs e)
{
webBrowser1.GoHome();
}
private void goForwardToolStripMenuItem_Click(object sender, System.EventArgs e)
{
webBrowser1.GoForward();
}
private void goBackToolStripMenuItem_Click(object sender, System.EventArgs e)
{
webBrowser1.GoBack();
}其中每個菜單處理程序調(diào)用一個在 WebBrowser 類上支持的導(dǎo)航方法,。
說明: 從這些代碼中可以看出,,為菜單選項賦予的默認(rèn)名稱變得非常混亂,。因此,,最好在創(chuàng)建每個菜單控件時使用“屬性”編輯器更改其名稱。然后,,處理程序的名稱將反映菜單選項的名稱,。
-
請參見 Visual C# 為您編寫的代碼。
Visual C# IDE 已為您編寫了初始化代碼,。在“代碼”視圖中,,找到 Form1 類的構(gòu)造函數(shù)。此構(gòu)造函數(shù)的簽名為 public Form1(),。右擊要從此構(gòu)造函數(shù)內(nèi)部調(diào)用的 InitializeComponent 方法,,然后單擊“轉(zhuǎn)到定義”。現(xiàn)在,,您會看到在拖放控件和在“屬性”窗口中設(shè)置屬性時在后臺編寫的所有代碼,。
-
添加您自己的一些初始化代碼。
最后一個任務(wù)是將您自己的一些初始化代碼添加到 Form1,。絕對不應(yīng)使用構(gòu)造函數(shù)來調(diào)用可能引發(fā)異常的任何代碼,。因此,任何此類代碼必須放在其他某一位置,,即放在 Form1_Load 方法中,。在代碼編輯器頂部單擊“Form1.cs[設(shè)計]”選項卡,以返回 Windows 窗體,。選擇窗體并在“屬性”窗口中單擊“事件”按鈕(帶有閃電形狀的按鈕),,再雙擊“加載”,。這將添加一個事件處理程序方法并在“代碼”視圖中將光標(biāo)定位到該方法中。
當(dāng)用戶啟動您的程序時,,Windows 將通過發(fā)送 Load 事件來通知您的應(yīng)用程序的窗體,。當(dāng)窗體收到該事件時,它將調(diào)用 Form1_Load 方法,。為響應(yīng)事件而調(diào)用的方法稱為事件處理程序,。系統(tǒng)將在適當(dāng)?shù)臅r間調(diào)用此事件;您的工作就是將代碼放入在此事件發(fā)生時要執(zhí)行的事件處理程序中,。
在“代碼”視圖中,,向 Form1_Load 方法添加兩行代碼,如以下代碼所示,。這將使 WebBrowser 控件顯示計算機(jī)的默認(rèn)主頁,,還會設(shè)置 ComboBox 的初始值。
C#private void Form1_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndex = 0;
webBrowser1.GoHome();
} -
生成并運行程序,。
按 F5 生成并運行 Web 瀏覽器,。屏幕上將顯示 Windows 窗體,然后該窗體將顯示計算機(jī)的默認(rèn)主頁,。您可以使用 ComboBox 控件選擇一個網(wǎng)站,,然后單擊“Go”(轉(zhuǎn)到)以導(dǎo)航到該網(wǎng)站。菜單選項使您可以返回主頁,,或者在以前訪問過的網(wǎng)站之間前后移動,。
如果您不熟悉 C# 編程,閱讀 C# 語言入門 節(jié)會是一個好方法,。如果希望了解有關(guān) Visual C# 速成版開發(fā)環(huán)境的更多信息,,尤其是如何使用 IntelliSense 來創(chuàng)建控制臺應(yīng)用程序的更多信息,請參見如何:創(chuàng)建 C# 控制臺應(yīng)用程序,。. 若要了解如何生成 Windows Presentation Foundation 應(yīng)用程序的信息,,請參見如何:創(chuàng)建 C# WPF 應(yīng)用程序。