更新: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行初始化。
本示例演示如何創(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)建事件處理程序。
創(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 窗體??梢噪S時在該視圖和“代碼”視圖之間切換,方法是右擊設(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)控件,然后單擊“屬性”??梢栽?span id="moiyehiw" class="ui">“名稱”屬性中鍵入該控件的新名稱。
-
-
單擊工具欄上的“工具箱”按鈕,或者在“視圖”菜單上單擊“工具箱”。向下滾動控件列表并展開“菜單和工具欄”,直到看到 MenuStrip。將此控件拖到 Windows 窗體上的任何位置。
此控件在窗體的頂部創(chuàng)建一個默認(rèn)菜單。
-
在顯示“請在此處鍵入”的框中,鍵入菜單名稱,在本例中為“導(dǎo)航”。按 Enter 鍵時,將出現(xiàn)新的空框以創(chuàng)建其他菜單和菜單項。在位置較低的框中,鍵入“主頁”。按 Enter,將顯示更多的框。鍵入“返回”。按 Enter 鍵,并鍵入“前進”。
這些菜單項構(gòu)成基本的網(wǎng)站導(dǎo)航控件。
-
添加按鈕。
在“工具箱”的“公共控件”類別中,將一個 Button 控件拖動到大約在 Windows 窗體中間的位置,緊靠菜單欄下。在“屬性”窗口中,將“Text”屬性更改為“轉(zhuǎn)到”而不是“button1”,并將類似“(名稱)”的設(shè)計名稱從“button1”更改為“轉(zhuǎn)到按鈕”。
-
添加“組合框”。
在“工具箱”的“公共控件”類別中,拖動 ComboBox 控件并將它放置到新按鈕的左側(cè)。拖動邊緣和角以調(diào)整該“組合框”的大小和位置,直到它與按鈕對齊。
說明:在 Windows 窗體上移動控件時,將出現(xiàn)藍色的線條。這些線條是幫助您垂直和水平對齊控件的參考線。也可以通過一次選擇多個控件來對齊它們??梢酝ㄟ^如下方法來實現(xiàn)此目的:單擊并拖動一個選擇框來包圍這些控件,或在按住 Shift 的同時單擊它們。選定多個控件后,可以使用對齊和調(diào)整大小圖標(biāo)修改對齊方式和大小。這些圖標(biāo)顯示在“設(shè)計”窗口頂部的“布局工具欄”上。
-
填充 ComboBox。
ComboBox 提供一個選項下拉列表,用戶可以從該列表中進行選擇。在此程序中,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)名稱變得非?;靵y。因此,最好在創(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 控件顯示計算機的默認(rèn)主頁,還會設(shè)置 ComboBox 的初始值。
C#private void Form1_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndex = 0;
webBrowser1.GoHome();
} -
生成并運行程序。
按 F5 生成并運行 Web 瀏覽器。屏幕上將顯示 Windows 窗體,然后該窗體將顯示計算機的默認(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)用程序。