进入Windows的世界
1.1進(jìn)入Windows的世界
1.1.1回顧控制臺應(yīng)用程序
開始學(xué)習(xí)Windows程序開發(fā)之前,讓我們一起重新回顧一下在C#語言學(xué)習(xí)中經(jīng)常使用到的控制臺應(yīng)用程序。
控制臺應(yīng)用程序創(chuàng)建以后默認(rèn)在(1)區(qū)域打開的是Program.cs代碼文件,而且主函數(shù)中沒有任何代碼。在解決方案資源管理器面板中除了屬性和引用之外只有一個Program.cs代碼文件。按Ctrl+F5不帶調(diào)試的運(yùn)行界面如下圖:
1.1.2創(chuàng)建Windows應(yīng)用程序
接下來,我們新建一個Windows應(yīng)用程序。
(1)打開vs2005,在菜單中依次選擇“文件” – “新建” – “項目…”菜單項
(2)在模板中選擇Windows應(yīng)用程序
Windows應(yīng)用程序默認(rèn)創(chuàng)建以后的界面如下圖:
按Ctrl+F5不帶調(diào)試的運(yùn)行界面如下圖:
1.1.3Windows應(yīng)用程序和控制臺應(yīng)用程序區(qū)別
(1)在1區(qū)域默認(rèn)打開的代碼文件不同。控制臺應(yīng)用程序默認(rèn)打開的是Program.cs代碼文件,并且直接是代碼編輯模式,而Windows應(yīng)用程序默認(rèn)打開的
是Form1.cs文件,并且是設(shè)計模式。
(2)我們再來看解決方案面板發(fā)現(xiàn)和控制臺應(yīng)用程序相比多了個Form1.cs,但是同樣有Program.cs文件,那么好,我們打開Program.cs看看和控制臺中的Program.cs文件的內(nèi)容有何不同。
<1>兩者都有命名空間的引用部分,但是具體引用的命名空間不同。
<2>對于類Program的定義不同,在Windows中Program被定義為靜態(tài)類。
<3>主函數(shù)的簽名及內(nèi)容不同。Windows程序中主函數(shù)上面添加了[STAThread]指示應(yīng)用程序的默認(rèn)線程模型是單線程單元,同時在主函數(shù)中已經(jīng)添加了三行代碼。第一行代碼用于啟用應(yīng)用程序的可視樣式,第二行代碼用于程序控件的默認(rèn)設(shè)置,第三行代碼設(shè)置程序啟動的窗體實例。在第三行代碼中有new Form1() 這個代碼相信大家都比較熟悉,其作用是創(chuàng)建Form1的實例對象,那么Form1究竟是什么呢?
我們通過轉(zhuǎn)到定義操作可以看到如圖結(jié)果:
Form1就是一個類,該類繼承自Form,Form是系統(tǒng)中已經(jīng)定義好的一個類。并且Form1的定義使用的部分類定義,分別在Form1.cs和From1.Designer.cs兩個代碼文件中。其中From1.Designer.cs中的代碼一般是由系統(tǒng)自動生成的。
現(xiàn)在可能大家就開始有些疑問了,既然Form1他就是一個類,和我們之前在C#中定義的類一樣,那么為何會有兩種查看界面呢,一種是默認(rèn)創(chuàng)建好Windows項目后打開的Form1.cs的設(shè)計界面,一種是代碼編寫界面(如上圖)。
這就是Windows應(yīng)用程序的特別之處了,從1.1.2中我們知道Windows程序運(yùn)行以后是有界面的,而Form1就是一個運(yùn)行以后會有界面的類,那么強(qiáng)大的VS就幫我們增加了一種可視化的設(shè)計模式,方便我們可視化的對Form1進(jìn)行設(shè)計。其設(shè)計界面和代碼編輯模式是對應(yīng)的,設(shè)計界面所做的操作,vs會自動生成相應(yīng)的代碼。
1.2Windows程序設(shè)計的一般步驟
1.2.1界面設(shè)計
控件擺放:
(1)打開Form1的設(shè)計界面,
(2)把鼠標(biāo)移到“工具箱”,工具箱會自動展開(或者通過視圖菜單也可以打開工具箱面板),雙擊“公共控件”下的“Button”。這時,在Form1窗體上會出現(xiàn)一個按鈕button1
(3)從工具箱中拖“Button”控件放到Form1窗體上,在Form1窗體上會出現(xiàn)一個按鈕button2
(4)在工具箱中單擊“Button”控件,然后在Form1窗體上的空白位置單擊,在Form1窗體上會出現(xiàn)一個按鈕button3
步驟(2)(3)(4)是向窗體添加控件的3種方法,其中步驟(3)及拖放的方式是最常用的。
(5)控件添加到窗體上的位置及其大小是可以直接對其進(jìn)行拖拽修改的。
深層探索:
我們剛剛向Form1窗體添加了3個Button控件,那么對應(yīng)Form1類的變化時什么呢?在資源管理器中我們雙擊打開Form1.Designer.cs代碼文件。
我們添加的三個Button按鈕對應(yīng)在Form1中增加了3個Button類型的私有字段,并且在上面折疊起來的代碼中還有對這三個對象的相關(guān)屬性設(shè)置。
1.2.2代碼編寫
我們希望程序運(yùn)行以后單擊button1按鈕可以出來一個歡迎的消息框。
雙擊button1按鈕進(jìn)入代碼編輯界面,編寫如下代碼:
using System.Drawing; using System.Text; using System.Windows.Forms;namespace WindowsApplication11 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){MessageBox.Show("歡迎你!");}} }?運(yùn)行效果: 深層探索:我們剛剛在設(shè)計界面雙擊button1究竟發(fā)生了什么事情呢?現(xiàn)在我們重新打開Form1.Designer.cs代碼文件查看Windows窗體設(shè)計生成的代碼。 vs自動幫我們生成了綁定button1的Click事件的相應(yīng)代碼。?1.3控件究竟是什么?在Windows程序設(shè)計中,我們總是說控件,那么控件究竟是什么呢?
以Button控件為例,我們通過轉(zhuǎn)到定義操作,顯示代碼如下:
那么可知,控件其實就是類。
控件是對數(shù)據(jù)和方法的封裝,是可視化交互的載體,其本質(zhì)就是具有可視界面的類。
轉(zhuǎn)載于:https://www.cnblogs.com/micy/archive/2010/04/30/1725012.html
總結(jié)
以上是生活随笔為你收集整理的进入Windows的世界的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql配置连接远程_MySql配置远
- 下一篇: java信息管理系统总结_java实现科