版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1第一講 Windows程序設(shè)計初步2教學(xué)目標(biāo) 了解Windows應(yīng)用程序設(shè)計的一般步驟 了解Windows窗體的屬性、方法和事件 了解控件的屬性、方法和事件 掌握Windows應(yīng)用程序設(shè)計步驟和方法3教學(xué)內(nèi)容一、 C#的Windows應(yīng)用程序設(shè)計步驟二、窗體及其屬性、事件和方法三、控件及其屬性、事件和方法4一、 C#的Windows應(yīng)用程序設(shè)計步驟 Windows應(yīng)用程序設(shè)計的大致步驟是:建立新項目向項目加入窗體向窗體添加控件為窗體和控件設(shè)置屬性為窗體和控件編寫事件處理程序5二、窗體及其屬性、事件和方法(1/4) 窗體就是Form,或稱表單,是Windows應(yīng)用程序的用戶界面。每個窗體有多個
2、屬性、事件和方法??梢园褜傩钥闯蓪ο蟮男再|(zhì),事件看成對象對消息的響應(yīng),方法看成對象完成功能的動作。設(shè)計窗體的工作內(nèi)容主要是修改或者獲取窗體的屬性,編寫程序代碼響應(yīng)窗體的事件,設(shè)計和調(diào)用方法完成預(yù)定的功能。6二、窗體及其屬性、事件和方法(2/4)1、窗體的常用屬性7二、窗體及其屬性、事件和方法(3/4)2、窗體的常用事件8二、窗體及其屬性、事件和方法(4/4)3、窗體的常用方法9三、控件及其屬性、事件和方法(1/4) 控件是應(yīng)用程序界面上供用戶操作或向用戶展示信息的目標(biāo)單元,例如窗體上的菜單、按鈕和文本框等。每種控件也有多個屬性、事件和方法。 10三、控件及其屬性、事件和方法(2/4)1、控件的
3、常用屬性11三、控件及其屬性、事件和方法(3/4)2、控件的常用事件12三、控件及其屬性、事件和方法(4/4)3、控件的方法、控件的方法 調(diào)用控件的方法可以完成某些功能,各種控件所具調(diào)用控件的方法可以完成某些功能,各種控件所具有的方法是不相同的,在詳述各種控件時將講解其常有的方法是不相同的,在詳述各種控件時將講解其常用方法。用方法。第二講 時鐘實例 14教學(xué)目標(biāo) 掌握編寫簡單的Windows應(yīng)用程序的方法 掌握Label控件和Timer控件的應(yīng)用 掌握DateTime類的應(yīng)用 完成時鐘實例的程序編寫15教學(xué)內(nèi)容 一、時鐘實例的程序功能及用戶界面 二、時鐘實例的設(shè)計步驟 三、時鐘實例的主要程序代
4、碼 四、Label控件 五、Timer控件16一、時鐘實例的程序功能及用戶界面 在這個窗體中,顯示了系統(tǒng)當(dāng)前的日期和時間。日期和時間每秒鐘被更新一次,表現(xiàn)出動態(tài)走時的效果。程序運行后的用戶界面如下圖。 17二、時鐘實例的設(shè)計步驟 創(chuàng)建Windows應(yīng)用程序項目,項目名稱為“時鐘實例”。 向默認(rèn)窗體中拖入7個Label控件,控件名稱為label1label7。這些控件用來顯示日期和時間。 向窗體中拖入一個Timer控件,控件名稱為timer1,用來控制時間和日期的更新。18三、時鐘實例的主要程序代碼private void Form1_Load(object sender, System.Eve
5、ntArgs e)/使用DateTime類的靜態(tài)屬性Now獲取當(dāng)前的日期和時間/將日期和時間數(shù)據(jù)作為各標(biāo)簽的Textlabel1.Text=DateTime.Now.Year.ToString();label3.Text=DateTime.Now.Month.ToString();label5.Text=DateTime.Now.Day.ToString();label7.Text=DateTime.Now.ToLongTimeString();private void timer1_Tick(object sender, System.EventArgs e)/調(diào)用Form1的Load事件代
6、碼顯示日期和時間Form1_Load(sender,null);19四、Label控件Label控件稱為標(biāo)簽,它是最簡單又最常用的控件。標(biāo)簽主要用來顯示靜態(tài)文字,這些文字通常用作指示性的說明,或者輸出簡短的文本信息。程序運行后標(biāo)簽控件上的文字信息不能被用戶編輯修改。 常用屬性Text屬性 設(shè)置控件的文本內(nèi)容。AutoSize屬性 設(shè)置控件是否能夠自動調(diào)整大小以顯示Text屬性中的所有內(nèi)容。Location屬性 設(shè)置或獲取控件在容器中的位置,該位置確定控件的左上角相對容器的X和Y坐標(biāo)。Size屬性 設(shè)置或獲取控件的大小。BackColor屬性 設(shè)置控件的背景顏色。ForeColor屬性 設(shè)置或獲
7、取控件的前景顏色。BorderStyle屬性 設(shè)置或獲取控件的邊框風(fēng)格。Font屬性 設(shè)置控件的字體。Cursor屬性 設(shè)置鼠標(biāo)在控件上的光標(biāo)形狀。Enabled屬性 設(shè)置控件的可用性。Visible屬性 設(shè)置控件的可見性。20五、Timer控件 Timer控件稱計時器,它用來計時。當(dāng)程序中每隔一段時間就要調(diào)用某段程序時,就使用它來控制。 1、常用屬性 Enabled屬性 設(shè)置記時器的可用性。 Interval屬性 設(shè)定記時器的時間間隔。 2、Tick事件 Timer控件的事件只有一個Tick,它每到指定的時間間隔時發(fā)生。在這個事件的處理程序中編寫每過一段時間就要執(zhí)行的代碼,例如時鐘實例中更新
8、日期和時間的代碼。第三講 加法練習(xí)器實例 22教學(xué)目標(biāo)l加深了解Windows窗體和控件的屬性、方法和事件l熟練掌握Windows應(yīng)用程序設(shè)計步驟和方法l掌握Button控件和TextBox控件的應(yīng)用l初步接觸使用MessageBox.Show輸出信息的方法l完成加法練習(xí)器實例的程序編寫23教學(xué)內(nèi)容 一、加法練習(xí)器的功能及用戶界面 二、加法練習(xí)器的設(shè)計步驟 三、加法練習(xí)器的主要程序代碼 四、Button控件 五、TextBox控件24一、加法練習(xí)器的功能及用戶界面 在這個窗體中,程序能自動產(chǎn)生一道隨機(jī)的兩個一位整數(shù)相加的練習(xí)題,用戶在文本框中輸入答案后回車確認(rèn)。若答案正確,將在一個信息框中顯示
9、“恭喜,你答對了!”,并自動產(chǎn)生下一道題供用戶作答;若答案不正確,會在一個信息框中顯示“你答錯了,再來一次!”,不產(chǎn)生新的題目,直到本題答對后再產(chǎn)生下一道題。當(dāng)用戶單擊【退出】按鈕時,窗體被關(guān)閉而結(jié)束程序。程序運行后的效果如下圖。25二、加法練習(xí)器的設(shè)計步驟 創(chuàng)建Windows應(yīng)用程序項目,項目名稱為“加法練習(xí)器實例”。 向默認(rèn)窗體中拖入4個Label控件,控件名稱為label1label4。這些Label控件用來顯示練習(xí)的題目。 向窗體中拖入一個TextBox控件,控件名稱為textBox1,程序運行后供用戶輸入答案。 向窗體中拖入一個Button控件,控件名稱為button1,用戶單擊它可
10、以退出程序。26三、加法練習(xí)器的主要程序代碼(1/2)private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) /在文本框中只能輸入數(shù)字if(!(Char.IsDigit(e.KeyChar)=true | e.KeyChar=8)e.Handled=true; /如果按了回車鍵if(e.KeyChar=13) /回車鍵的KeyChar為13 if(this.textBox1.Text=) MessageBox.Show(你未輸入答案!); return; int a,b,c;
11、/將標(biāo)簽和文本框的Text轉(zhuǎn)換成整型數(shù)a=int.Parse(label1.Text);b=int.Parse(label3.Text);c=int.Parse(textBox1.Text);27三、加法練習(xí)器的主要程序代碼(2/2) if (c=a+b) /若答案正確/調(diào)用消息框的Show方法顯示信息MessageBox.Show(恭喜,你答對了!);/調(diào)用Form1_Load事件處理程序產(chǎn)生下一道題Form1_Load(null,null);/清空文本框textBox1.Text=;/置光標(biāo)于文本框內(nèi)textBox1.Focus();else /若答案不正確MessageBox.Show(
12、你答錯了,再來一次!);textBox1.Text=;textBox1.Focus();28四、Button控件 Button控件稱為命令按鈕,主要用來啟動一個命令。 1、常用的屬性 Image屬性 設(shè)置命令按鈕上顯示的圖片。 ToolTip屬性 鼠標(biāo)懸停在命令按鈕上時顯示的文字提示。 Enabled屬性 設(shè)置命令按鈕的可用性。 2、常用的事件 命令按鈕也有許多事件,常常只為Click事件編程。鼠標(biāo)左鍵單擊該控件時發(fā)生Click事件,在該事件處理程序中編寫按鈕的功能代碼。29五、TextBox控件(1/3) TextBox控件稱為文本框,主要用來接受用戶的輸入,當(dāng)然也可以用于輸出信息。 1、常
13、用的屬性 Multiline屬性 設(shè)置文本框是否可以多行顯示或輸入。 ScrollBars屬性 設(shè)置文本框的滾動條。 ReadOnly屬性 設(shè)置文本框是否只讀。 PasswordChar屬性 設(shè)置在文本框中輸入口令時的掩蓋字符。 Dock 屬性 設(shè)置控件的??课恢茫甘就?康饺萜鞯哪倪?。30五、TextBox控件(2/3) 2、常用的事件 Enter事件 文本框獲得光標(biāo)時發(fā)生。 Leave事件 文本框失去光標(biāo)時發(fā)生。 KeyDown事件 按下某鍵時發(fā)生。 KeyUp事件 鍵彈起時發(fā)生。 KeyPress事件 完成一次按鍵時發(fā)生。 TextChanged事件 當(dāng)文本發(fā)生改變后發(fā)生。 Valida
14、ting 事件 驗證控件時發(fā)生。31五、TextBox控件(3/3) 3、常用的方法 Clear方法 從文本框中清除所有文本。 Copy方法 將文本框中選定的內(nèi)容復(fù)制到剪貼板中。 Cut方法 將文本框中選定的內(nèi)容剪切到剪貼板中。 Paste方法 用剪貼板中的內(nèi)容替換文本框中當(dāng)前選定的內(nèi)容。 Select方法 選定文本框的一部分文字。 SelectAll方法 選定文本框的全部文字。 Focus方法 將輸入焦點于置文本框內(nèi)。 Undo方法 撤消在文本框中的上一次編輯操作。 ClearUndo方法 清除緩沖區(qū)中有關(guān)撤消操作的信息。第四講 項目選擇器實例 33教學(xué)目標(biāo)l理解事件驅(qū)動編程機(jī)制l熟練掌握事
15、件處理程序代碼編寫l掌握ListBox控件和ComboBox控件的應(yīng)用l完成項目選擇器實例的程序編寫34教學(xué)內(nèi)容 一、項目選擇器的功能及用戶界面 二、項目選擇器的設(shè)計步驟 三、項目選擇器的主要程序代碼 四、ListBox控件 五、ComboBox控件35一、項目選擇器的功能及用戶界面 在這個窗體中,由左右兩個ListBox控件構(gòu)成選擇器,兩個列表框中的項目可以互選,窗體上部的組合框供用戶設(shè)定其下方兩個列表框的風(fēng)格,列表框風(fēng)格有“單列顯示”和“多列顯示”兩種。程序運行的效果如下圖。36二、項目選擇器的設(shè)計步驟 創(chuàng)建Windows應(yīng)用程序項目,項目名稱為“項目選擇器實例”。 向默認(rèn)窗體中拖入1個L
16、abel控件,控件名稱為label1。這個Label控件用來說明下方組合框的作用。 向窗體中拖入1個ComboBox控件,控件名稱為comboBox1,程序運行后供用戶設(shè)定列表框的風(fēng)格。 向窗體中拖入2個ListBox控件,控件名為listBox1和listBox2,分別用作項目的備選池(左側(cè))和已選池(右側(cè))。 向窗體中拖入4個Button控件,控件名稱分別為為button1button4,用來啟動從列表框中移動項目的功能。37三、項目選擇器的主要程序代碼(1/2) 、【】按鈕單擊代碼private void button1_Click(object sender, System.Event
17、Args e) /將listBox1中的所有選擇項添加到listBox2中for(int i=0;ilistBox1.SelectedItems.Count;i+) listBox2.Items.Add(listBox1.SelectedItemsi.ToString();/從listBox1中移除所有的選擇項for(int i=0;i】按鈕單擊代碼private void button2_Click(object sender, System.EventArgs e)/將listBox1的的所有項添加到listBox2中for(int i=0;ilistBox1.Items.Count;i+
18、)listBox2.Items.Add(listBox1.Itemsi);/清除listBox1中的所有項listBox1.Items.Clear();39四、ListBox控件(1/4) ListBox控件稱為列表框,程序運行后用戶可以從列表中選擇某些項。 1、常用屬性 DataSource屬性 列表框獲取列表項的數(shù)據(jù)源。 Items屬性 列表框中的各項。它是一個集合。 MultiColumn屬性 設(shè)置列表框是否可以多列顯示 SelectionMode屬性 設(shè)置列表框是否可以選擇多項。 SelectedItems屬性 列表框中選擇項的集合。 SelectIndex屬性 列表框中第一個選定項的
19、索引號。 SelectItem屬性 列表框中的選定項。 Text屬性 列表框中選定項的文本。40四、ListBox控件(2/4) 2、常用事件 DoubleClick事件 雙擊控件時發(fā)生。 SelectedIndexChange事件 列表框中選擇項的索引號變化時發(fā)生。41四、ListBox控件(3/4) 3、常用方法 ClearSelected方法 撤消對列表框中所有選擇項的選擇。 SetSelected方法 設(shè)置或撤消對列表框中選擇項的選擇。42四、ListBox控件(4/4) 4、Items集合的常用方法和屬性 屬性Items集合本身又帶有很多的方法和屬性,這些方法和屬性十分有用。 Add
20、方法 向Items添加列表項。 RemoveAt方法 從Items集合中移除指定索引號的某項。 Remove方法 從Items集合中移除某項。 Insert方法 向Items插入列表項到指定索引處。 Count屬性 Items的項數(shù)。43五、ComboBox控件 ComboBox控件稱為組合框,它是文本框和列表框的組合,既可以接受用戶的輸入,也可以接受用戶的選擇。 常用事件 DropDown事件 展開下拉表時發(fā)生。 SelectedIndexChanged事件 組合框中選擇項的索引號變化時發(fā)生。 TextChanged事件 組合框中的文本變化時發(fā)生。 SelectionChangeCommit
21、ted事件 用戶提交一個修改時發(fā)生。44第五講 選擇題應(yīng)答器實例 45教學(xué)目標(biāo)l掌握RadioButton控件的屬性、事件和方法l掌握CheckBox控件的屬性、事件和方法l掌握GroupBox控件的屬性l掌握獲取用戶單選和多選結(jié)果的方法l完成選擇題應(yīng)答器實例的程序編寫46教學(xué)內(nèi)容 一、選擇題應(yīng)答器的功能及用戶界面 二、選擇題應(yīng)答器的設(shè)計步驟 三、選擇題應(yīng)答器的主要程序代碼 四、RadioButton控件 五、CheckBox控件 六、GroupBox控件47一、選擇題應(yīng)答器的功能及用戶界面 在這個窗體中,用戶可以對單選題和多選題作出選擇。當(dāng)單擊【確定】按鈕后,將在窗體右側(cè)的文本框中顯示答題的
22、結(jié)果。單選題是由一組RadioButton控件表示和作答的,多選題是由一組CheckBox控件表示和作答的。程序運行的效果如下圖。48二、選擇題應(yīng)答器的設(shè)計步驟創(chuàng)建Windows應(yīng)用程序項目,項目名稱為“選擇題應(yīng)答器實例”。向默認(rèn)窗體中拖入3個Label控件,控件名稱為label1label3。這3個Label控件就是窗體中有深色背景的文字標(biāo)簽,用來標(biāo)識題目和答案。向窗體中拖入2個GroupBox控件,控件名稱為groupBox1和groupBox2,其作用是將4個單選鈕和4個檢查框分成兩組放置在其內(nèi)。向控件groupBox1中拖入4個RadioButton控件,控件名為radioButton
23、1radioButton4,用做單選題的選項。向控件groupBox2中拖入4個CheckBox控件,控件名為checkBox1checkBox4,用做多選題的選項。向窗體中拖入1個TextBox控件,控件名為textBox1,用來顯示答案。向窗體中拖入1個Button控件,控件名為button1,用來啟動提交答案的功能。49三、選擇題應(yīng)答器的主要程序代碼(1/2)private void button1_Click(object sender, System.EventArgs e)/構(gòu)造單選題答案answer1string answer1= .NET Framework是一種;if(rad
24、ioButton1.Checked)answer1=answer1+radioButton1.Text+。;if(radioButton2.Checked)answer1=answer1+radioButton2.Text+。;if(radioButton3.Checked)answer1=answer1+radioButton3.Text+。;if(radioButton4.Checked)answer1=answer1+radioButton4.Text+。;50三、選擇題應(yīng)答器的主要程序代碼(2/2) /構(gòu)造多選題答案answer2string answer2=Button控件的事件有:
25、;if(checkBox1.Checked)answer2=answer2+checkBox1.Text+、;if(this.checkBox2.Checked)answer2=answer2+checkBox2.Text+、;if(this.checkBox3.Checked)answer2=answer2+checkBox3.Text+、;if(this.checkBox4.Checked)answer2=answer2+checkBox4.Text+、;if(answer2.Length=13)/若answer2的字符個數(shù)為13,一組CheckBox控件中未勾選任何選項answer2=B
26、utton控件沒有事件。;elseint n=answer2.Length;/去掉answer2最后一個頓號,加上一個句號answer2=answer2.Substring(0,n-1)+。;/將兩個答案合并顯示在textBox1中this.textBox1.Text=answer1+answer2;51四、RadioButton控件 RadioButton控件稱為單選鈕。當(dāng)用戶必須在多個選項中選擇其一時,可以使用一組單選鈕,此時必須用一個GroupBox控件將這些單選鈕捆綁成組,使各單選鈕間產(chǎn)生互斥效果。 1、常用的屬性 Checked屬性 設(shè)置和獲取控件的選中狀態(tài)。 AutoCheck屬性
27、 設(shè)置單選鈕在單擊時是否自動更改狀態(tài)。 2、常用的事件 Click事件 單擊控件時發(fā)生。 CheckedChange事件 Checked屬性發(fā)生變化時發(fā)生。 Enter事件 控件成為活動控件時發(fā)生。52五、CheckBox控件 CheckBox控件稱為檢查框(或稱核對框),當(dāng)它成組使用時,可以在一組選項中選擇多項,因此也有人把它稱為復(fù)選框。與單選鈕不同的是,一組檢查框不存在互斥。也就是說,在一組復(fù)選框中,用戶可以選中幾個,也可以一個都不選。 檢查框與單選鈕共享大多數(shù)的常用屬性、方法和事件。53六、GroupBox控件 GroupBox控件稱為成組框,它的作用是將一些控件捆綁成一個組,整體控制組
28、內(nèi)控件的可用性、可見性或停靠位置,使用戶界面清晰明了。值得注意的是,當(dāng)RadioButton控件分組使用時,一定要將每一組分別放在一個GroupBox控件內(nèi),使組內(nèi)控件互斥以起到分組單選的作用。第六講 英文字母練習(xí)器實例 55教學(xué)目標(biāo)l掌握PictureBox控件的屬性、事件和方法l掌握窗體鍵盤事件的應(yīng)用l掌握具有復(fù)雜邏輯程序的代碼編寫l完成英文字母練習(xí)器實例的程序編寫56教學(xué)內(nèi)容 一、英文字母練習(xí)器的功能及用戶界面 二、英文字母練習(xí)器的設(shè)計步驟 三、英文字母練習(xí)器的主要程序代碼 四、PictureBox控件57一、英文字母練習(xí)器的功能及用戶界面 程序運行后,窗體中有4個字母由頂部紛紛下落,用
29、戶敲擊鍵盤的對應(yīng)鍵來擊打這些字母。若某個字母被擊中,該字母被炸掉,又有一個新的字母從窗體頂部下落。若某字母一直未被擊中,到達(dá)窗體底部后又從窗體的頂部換成另一個字母落下。這些字母都是隨機(jī)的。程序運行的效果如下圖。58二、英文字母練習(xí)器的設(shè)計步驟新建一個Windows應(yīng)用程序項目,項目名稱為“英文字母練習(xí)器實例”。向默認(rèn)窗體中拖入4個Label控件,控件名稱為label1label4。這4個Label控件用來表示要被擊打的字母。向窗體中拖入1個PictureBox控件,控件名稱為pictureBox1。將一幅預(yù)先準(zhǔn)備好的表現(xiàn)爆炸景象的圖片作為其Image圖片來源。該控件的作用是當(dāng)某個字母被擊中時,
30、用它來代替字母,表示該字母被炸掉了。向窗體中拖入2個Timer控件,控件名稱為timer1和timer2,其中timer1用來控制4個字母往下移動,timer2用來控制爆炸的延時59三、英文字母練習(xí)器的主要程序代碼(1/3)、在窗體加載時生成個隨機(jī)字母private void Form1_Load(object sender, System.EventArgs e)/初始化字母數(shù)組c=new char4;Random randomNumber=new Random();for(int i=0;i4;i+)/由隨機(jī)數(shù)生成的字母給標(biāo)簽的Text賦值int rand=randomNumber.Nex
31、t(26)+65;ci=(char)rand;Label l=(Label)labelListi;l.Text=ci.ToString();60三、英文字母練習(xí)器的主要程序代碼(2/3)、控件timer1發(fā)生Tick事件時使個標(biāo)簽下移private void timer1_Tick(object sender, System.EventArgs e)p0.Y=p0.Y+10;p1.Y=p1.Y+5;p2.Y=p2.Y+8;p3.Y=p3.Y+2;for(int i=0;i=this.Height) pi.Y=0; Random randomNumber=new Random();int ran
32、d=randomNumber.Next(26)+65;ci=(char)rand;l.Text=ci.ToString(); 61三、英文字母練習(xí)器的主要程序代碼(3/3)、窗體內(nèi)按下一鍵時判斷窗體內(nèi)的字母是否被擊中private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)for(int i=0;in)/取相對路徑photoPath=photoPath.Substring(n,m-n); /構(gòu)建命令字符串,準(zhǔn)備插入記錄myCommand.CommandText= insert into
33、 學(xué)生信息表 + values (xh,xm,xb,bj,csrq,zzmm,mz,jg,xxzk,txlj);151三、數(shù)據(jù)錄入窗體的主要程序代碼(5/6) /設(shè)置命令參數(shù)/括號內(nèi)的4個內(nèi)容分別為:參數(shù)名、參數(shù)類型、寬度、參數(shù)所代表的列名myCommand.Parameters.Add(xh,SqlDbType.NChar,10,學(xué)號);myCommand.Parameters.Add(xm,SqlDbType.NChar,10,姓名);myCommand.Parameters.Add(xb,SqlDbType.NChar,2,性別);myCommand.Parameters.Add(bj,
34、SqlDbType.NChar,10,班級);myCommand.Parameters.Add(csrq,SqlDbType.DateTime,8,出生日期);myCommand.Parameters.Add(zzmm,SqlDbType.NChar,10,政治面貌);myCommand.Parameters.Add(mz,SqlDbType.NChar,10,民族);myCommand.Parameters.Add(jg,SqlDbType.NChar,20,籍貫);myCommand.Parameters.Add(xxzk,SqlDbType.NChar,10,學(xué)習(xí)狀況);myComman
35、d.Parameters.Add(txlj,SqlDbType.NChar,20,相片URL); /給定參數(shù)的值myCommand.Parametersxh.Value=number;myCommand.Parametersxm.Value=name;myCommand.Parametersxb.Value=sex;myCommand.Parametersbj.Value=Class;myCommand.Parameterscsrq.Value=birthday;myCommand.Parameterszzmm.Value=face;myCommand.Parametersmz.Value=n
36、ation;myCommand.Parametersjg.Value=place;myCommand.Parametersxxzk.Value=studyState;myCommand.Parameterstxlj.Value=photoPath;152三、數(shù)據(jù)錄入窗體的主要程序代碼(6/6) /執(zhí)行插入命令myConnection.Open();myCommand.ExecuteNonQuery();myConnection.Close();MessageBox.Show(數(shù)據(jù)已成功保存。,信息提示,MessageBoxButtons.OK,MessageBoxIcon.Informatio
37、n);/重置輸入狀態(tài),準(zhǔn)備輸入下一條記錄buttonAfresh_Click(null,null); 除了以上插入記錄的核心代碼外,本實例還需要有其他輔助代碼共同完成程序功能,例如窗體加載時需要對窗體控件進(jìn)行初始化等。 153四、DateTimePicker控件(1/2) DateTimePicker控件稱為日期拾取器,用戶可以在這里選擇或輸入一個日期。使用這個控件的一個最大優(yōu)勢在于通過它取得的數(shù)據(jù)一定是日期格式。 1、常用屬性 Value屬性 設(shè)置或獲取控件中的日期,類型為DateTime,默認(rèn)值為DateTime.Now。 Text屬性 顯示在控件上的文本。 ShowCheckBox屬性
38、設(shè)置在控件的左端是否顯示復(fù)選框。 Checked屬性 當(dāng)ShowCheckBox屬性為true時,確定復(fù)選框中的勾選狀態(tài)。為true時已勾選,為false時未勾選,默認(rèn)值為true。154四、DateTimePicker控件(2/2) 2、常用事件 ValueChanged事件 控件的Value屬性發(fā)生改變后激發(fā)。 Click事件 單擊控件時發(fā)生。 DoubleClick事件 雙擊控件時發(fā)生。155第十七講 刪除記錄窗體實例 156教學(xué)目標(biāo)l掌握刪除記錄窗體的設(shè)計過程l掌握刪除記錄的事務(wù)處理過程l掌握刪除數(shù)據(jù)記錄的方法l完成刪除記錄窗體實例的程序編寫157教學(xué)內(nèi)容 一、刪除記錄窗體的功能和用戶
39、界面 二、刪除記錄窗體的設(shè)計步驟 三、刪除記錄窗體的主要程序代碼158一、刪除記錄窗體的功能和用戶界面 刪除記錄窗體實現(xiàn)從數(shù)據(jù)庫XSGL的學(xué)生信息表刪除記錄的功能。在該功能窗體上,既可以瀏覽學(xué)生的信息,也可以刪除學(xué)生的記錄。程序運行后的用戶界面如下圖。159二、刪除記錄窗體的設(shè)計步驟創(chuàng)建Windows應(yīng)用程序項目,項目名稱為“刪除記錄窗體實例”。向窗體中加入1個 label控件,控件名為label1。該控件的文本“刪除學(xué)生信息”用來提示窗體的功能。向窗體中加入3個GroupBox控件,控件名為groupBox1、groupBox2和groupBox3。這3個控件用來將數(shù)據(jù)顯示區(qū)與用戶操作區(qū)分隔
40、。向控件groupBox1中加入10個Label控件,控件名為 label2label11。這10個控件用來標(biāo)明各數(shù)據(jù)項的名稱。向控件groupBox1中加入9個Label控件,控件名為 labelNumber、labelName等。這9個控件用來顯示學(xué)生信息的文本類型數(shù)據(jù)。向控件groupBox1中加入1個PictureBox控件,控件名為pictureBox1。這個控件用來顯示學(xué)生的相片。向控件groupBox2中加入4個Button控件,控件名為buttonFirst、buttonPrevious、buttonNext和buttonLast。這4個控件用來驅(qū)動數(shù)據(jù)記錄的移動瀏覽。向控件g
41、roupBox3中加入2個Button控件,控件名為buttonDelete和buttonExit。這2個控件用來啟動刪除記錄和退出功能。160三、刪除記錄窗體的主要程序代碼(1/2) 當(dāng)【刪除】按鈕被單擊時,為了慎重起見,詢問用戶是否真的要刪除當(dāng)前記錄。若用戶回答“是”,刪除當(dāng)前記錄;回答“否”則不做刪除操作。private void buttonDelete_Click(object sender, System.EventArgs e)/詢問是否確實要刪除當(dāng)前記錄DialogResult dr=MessageBox.Show(確實要刪除當(dāng)前記錄嗎?,詢問,MessageBoxButton
42、s.YesNo,MessageBoxIcon.Question);161三、刪除記錄窗體的主要程序代碼(2/2)/若用戶回答“是”if(dr=DialogResult.Yes)string number=labelNumber.Text;SqlCommand command=myConnection.CreateCommand();/構(gòu)造刪除記錄的命令文本command.CommandText=“delete from 學(xué)生信息表 where 學(xué)號 =+number+;myConnection.Open();/執(zhí)行刪除命令command.ExecuteNonQuery();myConnecti
43、on.Close();MessageBox.Show(記錄已刪除。,信息提示,MessageBoxButtons.OK,MessageBoxIcon.Information);/重新初始化Form1_Load(null,null);第十八講多窗格數(shù)據(jù)修改窗體實例 163教學(xué)目標(biāo)l掌握多窗格窗體的設(shè)計過程l掌握Splitter控件與Panel控件的使用l完成多窗格數(shù)據(jù)修改窗體實例的程序編寫164教學(xué)內(nèi)容 一、多窗格數(shù)據(jù)修改窗體的功能和用戶界面 二、多窗格數(shù)據(jù)修改窗體的設(shè)計步驟 三、多窗格數(shù)據(jù)修改窗體的主要程序代碼 四、Splitter控件與Panel控件165一、多窗格數(shù)據(jù)修改窗體的功能和用戶界
44、面(1/2) 多窗格數(shù)據(jù)修改窗體實現(xiàn)對數(shù)據(jù)庫XSGL中學(xué)生信息表的記錄進(jìn)行修改更新的功能。在該功能窗體上,用戶能夠逐條瀏覽到學(xué)生信息表內(nèi)學(xué)生的基本信息,當(dāng)確定需要修改數(shù)據(jù)時,可以對數(shù)據(jù)記錄進(jìn)行編輯修改,并更新數(shù)據(jù)記錄到數(shù)據(jù)庫中。程序運行后的用戶界面如下圖。166一、多窗格數(shù)據(jù)修改窗體的功能和用戶界面(2/2)167二、多窗格數(shù)據(jù)修改窗體的設(shè)計步驟(1/3)創(chuàng)建Windows應(yīng)用程序項目,項目名稱為“多窗格數(shù)據(jù)修改窗體實例”。使用數(shù)據(jù)連接向?qū)⒋绑w連接到數(shù)據(jù)庫XSGL,提取學(xué)生信息表中的所有數(shù)據(jù)到數(shù)據(jù)集中,此舉在窗體的托架上得到3個數(shù)據(jù)訪問控件sqlConnection1、sqlDataAdap
45、ter1和dataSet11 。向窗體中加入一個Panel控件,控件名為 panel1。設(shè)置該控件的Dock屬性值為 Top,使??吭诖绑w的頂部。設(shè)置其BorderStyle屬性值為Fixed3D。向窗體中加入一個Splitter控件,控件名為splitter1。設(shè)置其Dock屬性值為Top,使其緊貼在控件panel1的下方。向控件splitter1的下方加入一個Panel控件,控件名為 panel2。設(shè)置該控件的Dock屬性值為 Fill,使充滿在窗體的下部。設(shè)置其BorderStyle屬性值為Fixed3D。168二、多窗格數(shù)據(jù)修改窗體的設(shè)計步驟(2/3)向panel1中加入1個 Labe
46、l控件,控件名為label1。向panel1中加入1個GroupBox控件,控件名為groupBox1。向控件groupBox1中加入1個Label控件,控件名為label2,Text屬性值為“學(xué)號”。加入1個ComboBox控件到groupBox1中,控件名為comBoxNumber。打開控件comBoxNumbe的屬性窗口,將數(shù)據(jù)源屬性DataSource指定到數(shù)據(jù)集“dataSet11.學(xué)生信息表”,顯示成員屬性DisplayMenber指定到“學(xué)號”。向控件groupBox1中加入4個Button控件,控件名為buttonFirst、buttonPrevious、buttonNext和
47、buttonLast。向panel2中加入1個GroupBox控件,控件名為groupBox2。向控件groupBox2中加入9個Label控件,這些控件的文本為“姓名”、“性別”等。169二、多窗格數(shù)據(jù)修改窗體的設(shè)計步驟(3/3)向控件groupBox2中加入9個TextBox控件,控件名為textBoxName、textBoxSex等,這9個控件分別用來顯示或編輯對應(yīng)的數(shù)據(jù)項。將這9個文本框的Text屬性綁定到數(shù)據(jù)集dataSet11的對應(yīng)列上。向控件groupBox2中加入1個pictureBox1控件, 展示學(xué)生的相片。向控件groupBox2中加入1個Button控件, 控件名為bu
48、ttonBrowse,用來啟動打開文件對話框,讓用戶查找相片文件以替換某個學(xué)生原來的相片。設(shè)置其Enabled屬性初始值為false,待程序運行后切換到修改數(shù)據(jù)狀態(tài)時再由程序代碼改為true。向控件groupBox2中加入1個GroupBox控件,控件名為groupBox3。向控件groupBox3中加入3個Button控件,控件名為 buttonModiOrCancle、buttonUpdate和buttonExit。這3個控件分別用啟動“修改信息”、“保存修改”和“退出”功能。設(shè)置控件buttonUpdate的Enabled屬性初始值為false,待程序運行后切換到修改數(shù)據(jù)狀態(tài)時再由程序代
49、碼改為true。170三、多窗格數(shù)據(jù)修改窗體的主要程序代碼(1/5) 這里僅給出【保存修改】按鈕單擊的代碼。private void buttonUpdate_Click(object sender, System.EventArgs e)/取各文本框的數(shù)據(jù)string number=comboBoxNumber.Text;string name=textBoxName.Text;string sex=textBoxSex.Text;string Class=textBoxClass.Text;string birthday=textBoxBirthday.Text;string face=t
50、extBoxFace.Text;string nation=textBoxNation.Text;string place=textBoxPlace.Text;string studyState=textBoxState.Text;171三、多窗格數(shù)據(jù)修改窗體的主要程序代碼(2/5)/取相片文件的相對路徑string exePath=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;string photoPath=textBoxPhotoPath.Text; int n=exePath.Length;int m=photoPat
51、h.Length;if(mn)photoPath=photoPath.Substring(n,m-n); /構(gòu)建命令字符串,準(zhǔn)備更新記錄SqlCommand myUpdateCommand=sqlConnection1.CreateCommand();myUpdateCommand.CommandText=Update 學(xué)生信息表 Set 姓名=xm, 性別=xb,班級=bj,+出生日期=csrq,政治面貌=zzmm,民族=mz, 籍貫=jg,學(xué)習(xí)狀況=xxzk,相片URL=txlj where 學(xué)號=+number+; 172三、多窗格數(shù)據(jù)修改窗體的主要程序代碼(3/5)/設(shè)置命令參數(shù)/括號
52、內(nèi)的4個內(nèi)容分別為:參數(shù)名、參數(shù)類型、寬度、參數(shù)所代表的列名myUpdateCommand.Parameters.Add(xm,SqlDbType.NChar,10,姓名);myUpdateCommand.Parameters.Add(xb,SqlDbType.NChar,2,性別);myUpdateCommand.Parameters.Add(bj,SqlDbType.NChar,10,班級);myUpdateCommand.Parameters.Add(csrq,SqlDbType.DateTime,8,出生日期);myUpdateCommand.Parameters.Add(zzmm,S
53、qlDbType.NChar,10,政治面貌);myUpdateCommand.Parameters.Add(mz,SqlDbType.NChar,10,民族);myUpdateCommand.Parameters.Add(jg,SqlDbType.NChar,20,籍貫);myUpdateCommand.Parameters.Add(xxzk,SqlDbType.NChar,10,學(xué)習(xí)狀況);myUpdateCommand.Parameters.Add(txlj,SqlDbType.NChar,20,相片URL);/給定參數(shù)的值myUpdateCommand.Parametersxm.Val
54、ue=name;myUpdateCommand.Parametersxb.Value=sex;myUpdateCommand.Parametersbj.Value=Class;myUpdateCommand.Parameterscsrq.Value=birthday;myUpdateCommand.Parameterszzmm.Value=face;myUpdateCommand.Parametersmz.Value=nation;myUpdateCommand.Parametersjg.Value=place;myUpdateCommand.Parametersxxzk.Value=stud
55、yState;myUpdateCommand.Parameterstxlj.Value=photoPath;173三、多窗格數(shù)據(jù)修改窗體的主要程序代碼(4/5)/執(zhí)行更新命令sqlConnection1.Open();trymyUpdateCommand.ExecuteNonQuery();MessageBox.Show(數(shù)據(jù)已更新。,信息提示,MessageBoxButtons.OK,MessageBoxIcon.Information);catch(Exception E)MessageBox.Show(數(shù)據(jù)格式錯誤,不能更新數(shù)據(jù)。,信息提示,MessageBoxButtons.OK,Me
56、ssageBoxIcon.Exclamation);sqlConnection1.Close();/重新綁定數(shù)據(jù),定位到更新時的那條記錄n=comboBoxNumber.SelectedIndex;dataSet11.Clear();sqlDataAdapter1.Fill(dataSet11,學(xué)生信息表);comboBoxNumber.SelectedIndex=n;BindingContextdataSet11,學(xué)生信息表.Position =n;DataBind(n);174三、多窗格數(shù)據(jù)修改窗體的主要程序代碼(5/5)/設(shè)置控件的屬性,使處于信息瀏覽狀態(tài)buttonModiOrCanc
57、le.Text=修改數(shù)據(jù);textBoxName.ReadOnly=true;textBoxSex.ReadOnly=true;textBoxClass.ReadOnly=true;textBoxBirthday.ReadOnly=true;textBoxFace.ReadOnly=true;textBoxNation.ReadOnly=true;textBoxPlace.ReadOnly=true;textBoxState.ReadOnly=true;buttonBrowse.Enabled=false;buttonUpdate.Enabled=false;panel1.Enabled=tr
58、ue;175四、Splitter控件與Panel控件(1/2) Splitter與Panel是多窗格窗體設(shè)計中最常用的控件。沒有這兩個控件,靈活多樣的多窗格窗體是很難設(shè)計出來的。 1、Splitter控件 Splitter控件稱為分割器,用來分割窗體成多個窗格。程序運行后,用戶可以拖動它來改變窗體各窗格之間的大小。 Dock屬性 設(shè)置控件??吭谌萜鞯哪囊贿?。 Cursor屬性 設(shè)置鼠標(biāo)到達(dá)控件上的光標(biāo)形狀。 Enabled屬性 設(shè)置控件的可用性。176四、Splitter控件與Panel控件(2/2) 2、Panel控件 Panel控件稱為面板,它作為容器控件使用。通常把實現(xiàn)某個功能的多個控件
59、放在同一個Panel中,以便統(tǒng)一改變它們在窗體中的位置,或統(tǒng)一改變它們的可用性和可見性。 Dock屬性 設(shè)置控件??吭谌萜鞯哪囊贿?。 BorderStyle屬性 設(shè)置控件的邊框風(fēng)格。 Enabled屬性 設(shè)置控件的可用性。 Visible屬性 設(shè)置控件的可見性。第十九講多窗格數(shù)據(jù)瀏覽窗體實例 178教學(xué)目標(biāo)l掌握多窗格窗體的設(shè)計過程l掌握TreeView控件的使用l掌握對TreeView控件的節(jié)點控制方法l完成多窗格數(shù)據(jù)瀏覽窗體實例的程序編寫179教學(xué)內(nèi)容 一、多窗格數(shù)據(jù)瀏覽窗體的功能和用戶界面 二、多窗格數(shù)據(jù)瀏覽窗體的設(shè)計步驟 三、多窗格數(shù)據(jù)瀏覽窗體的主要程序代碼 四、TreeView控件1
60、80一、多窗格數(shù)據(jù)瀏覽窗體的功能和用戶界面(1/2) 多窗格數(shù)據(jù)瀏覽窗體實現(xiàn)對數(shù)據(jù)庫XSGL中的學(xué)生信息表的學(xué)生信息進(jìn)行快速定位瀏覽,用戶在窗體的左窗格中選擇一個學(xué)號,在窗體的右窗格中將顯示該生的詳細(xì)信息。程序運行后的用戶界面如下圖。181一、多窗格數(shù)據(jù)瀏覽窗體的功能和用戶界面(2/2)182二、多窗格數(shù)據(jù)瀏覽窗體的設(shè)計步驟(1/2)創(chuàng)建Windows應(yīng)用程序項目,項目名稱為“多窗格數(shù)據(jù)瀏覽窗體實例”。向窗體中加入一個ImageList控件,控件名為imageList1 。打開控件的屬性窗口,單擊Images屬性后的按鈕,彈出Image集合編輯器,向其中加入2幅圖片,一幅為文件夾圖片,另一幅為
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)中介加盟合同模板
- 鋼材銷售運輸合同范本
- 辦學(xué)合同協(xié)議
- 針對個人自行采購合同模板
- 農(nóng)機(jī)買賣合同協(xié)議書樣本
- 項目承包合同協(xié)議書
- 口譯翻譯合同-純?nèi)斯しg
- 醫(yī)療器械三方合作合同協(xié)議書范本
- 進(jìn)口貨物運輸預(yù)約保險合同
- 水電材料購銷簡單合同范本
- 九年級上冊-備戰(zhàn)2024年中考?xì)v史總復(fù)習(xí)核心考點與重難點練習(xí)(統(tǒng)部編版)
- 健康指南如何正確護(hù)理蠶豆病學(xué)會這些技巧保持身體健康
- 老客戶的開發(fā)與技巧課件
- 2024建設(shè)工程人工材料設(shè)備機(jī)械數(shù)據(jù)分類和編碼規(guī)范
- 26個英文字母書寫(手寫體)Word版
- GB/T 13813-2023煤礦用金屬材料摩擦火花安全性試驗方法和判定規(guī)則
- DB31 SW-Z 017-2021 上海市排水檢測井圖集
- 日語專八分類詞匯
- GB/T 707-1988熱軋槽鋼尺寸、外形、重量及允許偏差
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術(shù)條件
- 高考英語課外積累:Hello,China《你好中國》1-20詞塊摘錄課件
評論
0/150
提交評論