




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 1第一章 開發(fā)環(huán)境第二章 語法元素第三章 布局與自定義控件第四章 設(shè)置與資源第五章 線程第六章 菜單與對話框第七章 委托與事件第八章 圖像與動畫第九章 網(wǎng)絡(luò)通信*C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 2應(yīng)用程序設(shè)置 在應(yīng)用程序啟動時(shí),也許需要從某個(gè)配置文件中讀取各種參數(shù)用于本次的運(yùn)行,比如程序的標(biāo)題,并發(fā)連接的數(shù)量,默認(rèn)的登錄名等。 用于管理這些參數(shù)的文件稱為配置文件,與其相關(guān)的一些操作稱為應(yīng)用程序設(shè)置。資源 在應(yīng)用程序運(yùn)行時(shí),會需要大量輔助材料,如文字、圖像等,這些統(tǒng)稱為資源。資源可以與程序分開放置,也可以綁定到一個(gè)文
2、件中。 除非特殊情況,建議大家采用綁定資源的方式,這樣在使用資源時(shí)可以極大避免與存儲設(shè)備打交道所引起的程序異常。*C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 34.2.1 配置文件 程序啟動時(shí),其內(nèi)的控件的屬性值來自于一個(gè)配置文件。也就是說,修改配置文件可以導(dǎo)致不同的程序外觀。 每個(gè)應(yīng)用程序都可以附帶一個(gè) .config 文件。當(dāng)程序啟動時(shí),.NET 系統(tǒng)會自動搜索與程序同名的后綴為 .config 的文件并加載。 .config 文件內(nèi)容以 xml 格式存儲。如: C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 44.2.1 配置文件 程序啟動時(shí),其內(nèi)的控件的屬性值來自于
3、一個(gè)配置文件。也就是說,修改配置文件可以導(dǎo)致不同的程序外觀。 使用 .config 文件的值用于程序的示例如下:using System.Configuration;public MyForm() InitializeComponent(); AppSettingsReader r = new AppSettingsReader(); object o = r.GetValue(Opacity, typeof(double); this.Opacity = (double)o; C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 54.2.2 動態(tài)屬性 當(dāng)需要應(yīng)用程序自動應(yīng)用多個(gè)設(shè)置值時(shí),
4、可使用控件的動態(tài)屬性??丶膭討B(tài)屬性可以在啟動程序后自動從 .config 文件里讀取相應(yīng)的值。 選擇控件的 ApplicationSettingsApplicationSettings 屬性下的 PropertyBindingPropertyBindingC# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 64.2.2 動態(tài)屬性 當(dāng)使用過動態(tài)屬性后 一個(gè) app.config 文件放置在項(xiàng)目文件夾下。 生成程序后,會有一個(gè)以可執(zhí)行文件為名、.config 為后綴的配置文件放置在輸出文件夾下。 動態(tài)屬性的值會覆蓋在屬性面板里設(shè)置的值。C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院
5、74.3.1 功能要求 線柱根據(jù)屬性值繪畫。 當(dāng)點(diǎn)擊“排序”按鈕時(shí),根據(jù)上面的文字執(zhí)行不同的排序算法。 思路:為程序增加動態(tài)屬性: 線柱的靠邊位置:(LineBase,string)“Top”,Bottom “冒泡排序”按鈕的顯示文字:“選擇排序”和“插入排序”C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 84.3.2 實(shí)現(xiàn)線柱的動態(tài)屬性 分析:為了可以設(shè)置線柱的靠邊屬性為動態(tài)屬性,需要先在 DemoPanel 中公布該屬性。string fLineBase = Bottom;public string LineBase get return fLineBase; set if (v
6、alue = Left | value = Bottom) fLineBase = value; C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 94.3.2 實(shí)現(xiàn)線柱的動態(tài)屬性 分析:修改 Paint 事件將數(shù)組的值顯示到控件上的方法。private void DemoZone_Paint() / 事件面板自動生成事件面板自動生成 for (int i = 0; i fData.Length; i+) e.Graphics.FillRectangle( Brushes.Red, 3 * i, fLineBase = Top ? 0 : Height - fDatai, 2, fDat
7、ai ); / 思考:實(shí)現(xiàn)思考:實(shí)現(xiàn) Left 和和 Right??烧J(rèn)為控件的寬高一致??烧J(rèn)為控件的寬高一致。C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 104.3.2 實(shí)現(xiàn)線柱的動態(tài)屬性 分析:修改 Repaint 方法,根據(jù) fLineBase 值更新本控件指定位置的圖像。 提示:由于 Top 和 Bottom 方法都是垂直方向的,所以此處 Repaint 方法其實(shí)并沒有改變。將來如果添加水平方向的值,比如 Left 和 Right,則此處需要修改具體代碼。public void RePaint(int i) Invalidate(new Rectangle(3 * i, 0,
8、 2, Height); Update();C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 114.3.2 實(shí)現(xiàn)線柱的動態(tài)屬性 設(shè)置步驟: 選擇 dpMain 控件,在屬性窗口選擇 ApplicationSettings 下的 ProperyBinding 項(xiàng); 在彈出的窗口中,選擇 LineBase 屬性,在下拉列表中選擇“新建”; 在彈出的窗口中的 Name 項(xiàng)中填寫“dLineBase”(此處的名字是任意的,這里用前綴 d 表示動態(tài)屬性)。 用同樣的步驟為 btnSort 按鈕的 Text 屬性創(chuàng)建一個(gè)名為“dSortMethod”的動態(tài)屬性。C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范
9、大學(xué) | 軟件學(xué)院 124.3.3 實(shí)現(xiàn)按鈕的動態(tài)屬性 分析:修改 btnSort 的 Click 事件處理方法。 提示:需要提前實(shí)現(xiàn) fSelect 和 fInsert 方法。此處應(yīng)在 3.4.8 中完成。private void btnSort_Click(.) if (btnSort.Text = 冒泡排序冒泡排序) fBubble(); else if (btnSort.Text = 選擇排序選擇排序) fSelect(); else if (btnSort.Text = 插入排序插入排序) fInsert();C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 134.3.3 實(shí)
10、現(xiàn)按鈕的動態(tài)屬性 設(shè)置步驟: 選擇 btnSort 控件,在屬性窗口選擇 ApplicationSettings 下的 ProperyBinding 項(xiàng); 在彈出的窗口中,選擇 Text 屬性,在下拉列表中選擇“新建”; 在彈出的窗口中的 Name 項(xiàng)中填寫“dSortMethod” 。C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 144.3.4 生成應(yīng)用程序 生成程序,到輸出目錄內(nèi)查找 .config 文件,修改其中的值后運(yùn)行程序,查看不同的效果。C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 154.3.5 驗(yàn)證:(30分鐘) 練習(xí):(45分鐘)添加幾個(gè)動態(tài)屬性 窗體的標(biāo)
11、題 窗體的透明度(可自己查查窗體的各個(gè)屬性,那個(gè)是呢?)C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 164.4.1 命名的資源 資源是綁定在 exe 或 dll 內(nèi)部的被命名的數(shù)據(jù)塊。這個(gè)數(shù)據(jù)塊的內(nèi)容可能是一個(gè)圖像、一個(gè)聲音、一段文本的二進(jìn)制形式。 以下代碼使用一個(gè)圖片作為窗體的背景,并在程序運(yùn)行時(shí),動態(tài)加載。 這段代碼訪問的圖片文件為磁盤上的文件,在運(yùn)行時(shí)不能保證肯定存在,如果文件不存在。如果沒有保護(hù)代碼(如異常處理),則程序崩潰。即便有保護(hù)代碼,此時(shí)也只能以實(shí)色填充背景。public MyForm() InitializeComponent(); BackgroundImage
12、 = Image.FromFile(D:bg.jpg);C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 174.4.1 命名的資源 資源是綁定在 exe 或 dll 內(nèi)部的被命名的數(shù)據(jù)塊。這個(gè)數(shù)據(jù)塊的內(nèi)容可能是一個(gè)圖像、一個(gè)聲音、一段文本的二進(jìn)制形式。 使用資源可以避免上述問題。添加資源的方法如下: 查看項(xiàng)目的屬性,并切換到“資源”標(biāo)簽C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 184.4.1 命名的資源 資源是綁定在 exe 或 dll 內(nèi)部的被命名的數(shù)據(jù)塊。這個(gè)數(shù)據(jù)塊的內(nèi)容可能是一個(gè)圖像、一個(gè)聲音、一段文本的二進(jìn)制形式。 使用資源可以避免上述問題。添加資源的方法如下:
13、選擇資源類型:如“圖像”; 選擇添加方法:如“添加現(xiàn)有文件”; 給添加的資源命名:如 MyBackGround; 關(guān)閉項(xiàng)目屬性窗口。C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 194.4.1 命名的資源 資源是綁定在 exe 或 dll 內(nèi)部的被命名的數(shù)據(jù)塊。這個(gè)數(shù)據(jù)塊的內(nèi)容可能是一個(gè)圖像、一個(gè)聲音、一段文本的二進(jìn)制形式。 在代碼中使用資源 每個(gè)項(xiàng)目都有一個(gè)隱含的命名空間 Properties。該空間下有一個(gè)Resources 類,用于管理所有添加的資源,并通過名字直接訪問指定資源。代碼如下public MyForm() InitializeComponent(); Backgro
14、undImage = Properties.Resources.MyBackGround;C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 204.4.2 練習(xí):(15分鐘)為排序演示器添加一個(gè)圖片資源,運(yùn)行時(shí),以此圖片作為整個(gè)窗體的背景。C# C# 程序設(shè)計(jì)程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 21練習(xí): 1、(45 分鐘)在解決方案 Clock 中: 添加新的窗體項(xiàng)目 Clock02,實(shí)現(xiàn)并擴(kuò)展石英鐘: 采用應(yīng)用程序設(shè)置的方式確定表針的顏色值、長度,表盤的顏色值,大小刻度的顏色和直徑,以及是否需要掃秒效果。 采用動態(tài)屬性的方法,確定窗體的大小、標(biāo)題、是否置頂?shù)仍O(shè)置。C# C# 程序設(shè)計(jì)
15、程序設(shè)計(jì)天津師范大學(xué) | 軟件學(xué)院 22在文件夾中創(chuàng)建一個(gè)空白解決方案,方案名稱為 Test。在 Test中添加新的控制臺應(yīng)用程序 Console01,具體要求如下:(1)添加一個(gè)類文件 MyTool.cs,在其中定義一個(gè)名為 MyTool 的類。在其中定義一個(gè)靜態(tài)方法 ShowPairs。ShowPairs方法包含兩個(gè)字符數(shù)組參數(shù)(一個(gè)為純小寫字母字符串,一個(gè)為純數(shù)字字符串)。功能為將這兩個(gè)字符數(shù)組中的所有字符,依次實(shí)現(xiàn)類似天干地支方式的配對(字母在前,數(shù)字在后),配對應(yīng)能實(shí)現(xiàn)完整的一個(gè)循環(huán)。(2)添加一個(gè)類文件 Exceptions.cs,在其中定義兩個(gè)異常類RepetitionalCharException和InvalidCharException。具體的異常信息可自定義。(3)在 MyTool.cs中再添加一個(gè)靜態(tài)方法GetChars。該方法,接收一個(gè)字符串,并返回兩個(gè)字符串(利用參數(shù))。接收的字符串是一個(gè)字母和數(shù)字混合的字符串,返回的兩個(gè)字符串,一個(gè)是拆分出的小寫字母字符串,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 離婚財(cái)產(chǎn)分割協(xié)議:共同財(cái)產(chǎn)評估與分配方案
- 生態(tài)環(huán)保型廠房車間租賃服務(wù)協(xié)議
- 采購談判與跟單培訓(xùn)及效果監(jiān)測合同
- 環(huán)保項(xiàng)目現(xiàn)場管理規(guī)則與格式條款合同詳解
- 環(huán)保項(xiàng)目典當(dāng)質(zhì)押貸款服務(wù)合同示例
- 文化創(chuàng)意園場合作經(jīng)營與創(chuàng)新合作協(xié)議
- 綠色環(huán)保型廠房商鋪?zhàn)赓U服務(wù)協(xié)議
- 生態(tài)車庫建設(shè)與運(yùn)營管理合同樣本
- 新能源汽車抵押貸款操作細(xì)則合同
- 車輛股份及商標(biāo)權(quán)聯(lián)合轉(zhuǎn)讓合同
- 2025屆上海市(春秋考)高考英語考綱詞匯對照表清單
- 《外匯交易基礎(chǔ)知識培訓(xùn)》詳解課件
- 汽油化學(xué)品安全技術(shù)說明書MSDS
- 輸變電專業(yè)知識培訓(xùn)課件
- 新高考數(shù)學(xué)題型全歸納之排列組合專題18環(huán)排問題含答案及解析
- 清算開始日清產(chǎn)核資報(bào)告
- 進(jìn)修匯報(bào)高壓氧艙治療
- 學(xué)校教學(xué)設(shè)備設(shè)施安全管理制度(3篇)
- 森林消防專業(yè)實(shí)習(xí)總結(jié)范文
- 軟件正版化培訓(xùn)
- 《電力電子技術(shù)(第二版) 》 課件 項(xiàng)目五 交流調(diào)壓電路-調(diào)試電風(fēng)扇無級調(diào)速器
評論
0/150
提交評論