《chp1Windows編程基礎(chǔ)》由會(huì)員分享,可在線閱讀,更多相關(guān)《chp1Windows編程基礎(chǔ)(39頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,-,基于,C#,語言,主講教師:周 波,本課學(xué)時(shí):,72,課時(shí),聯(lián)系方式:,Windows,程序設(shè)計(jì),第一章、,Windows,編程基礎(chǔ),本章主要內(nèi)容介紹,1.1 windows,和窗體,1.2 Visual S IDE,簡(jiǎn)介,1.3,事件處理,內(nèi)容,1.1 Windows,和窗體,本章學(xué)習(xí)目標(biāo):,理解,Windows,窗體。,使用基本控件如標(biāo)簽、文本、按鈕、列表框和組合框。,掌握窗體的常用屬性和方法。,GUI,界面,控件,1.1 Windows,和窗體,各種控件,屬性,放置控件的區(qū)域,1.1 Windo
2、ws,和窗體,WinForms,應(yīng)用程序可能存在多個(gè)窗體,用于獲取用戶輸入的數(shù)據(jù)和向用戶顯示數(shù)據(jù),System.Windows.Forms,簡(jiǎn)單而強(qiáng)大,新的管理數(shù)據(jù)提供程序,靈活的控件,通曉數(shù)據(jù),向?qū)?1.1 Windows,和窗體,1.1.2,創(chuàng)建,WinForms,應(yīng)用程序,“,開始”,“程序”,“,Microsoft Visual Studio.NET 2008”,創(chuàng)建,WinForms,應(yīng)用程序,6-2,設(shè)計(jì)窗口,1.1.2 WinForm,應(yīng)用程序的代碼結(jié)構(gòu),using System;,using System.Drawing;,using System.Collections;,u
3、sing System.ComponentModel;,using System.Windows.Forms;,namespace SampleProject,/,/Form1,的摘要說明。,/,public class Form1:System.Windows.Forms.Form,/,/,必需的設(shè)計(jì)器變量,.,/,提供了大量繪圖工具的訪問權(quán)限,基礎(chǔ)核心命名空間,ArrayList,、,BitArray,、,Hashtable,、,Stack,、,StringCollection,和,StringTable,類,大量窗體和控件,從,System.Windows.Forms.Form,派生,V
4、isual Studio.NET,生成的代碼,1.1.2 WinForm,應(yīng)用程序的代碼結(jié)構(gòu),private System.ComponentModel.Container components=null;,public Form1(),/,/Windows,窗體設(shè)計(jì)器支持所必需的,/,InitializeComponent();,/,/TODO,:在,InitializeComponent,調(diào)用之后,添加任何構(gòu)造函數(shù)代碼,/,構(gòu)造函數(shù)調(diào)用,InitializeComponent(),方法,/,下面代碼見:,Form1.Designer.cs,文件,private void Initializ
5、eComponent(),ponents=new System.ComponentModel.Container();,this.Size=new System.Drawing.Size(300,300);,this.Text=Form1;,項(xiàng)目的容器,WinForm,應(yīng)用程序的代碼結(jié)構(gòu),/,/,清理所有正在使用的資源。,【,下面代碼:,Form1.Designer.cs】,/,protected override void Dispose(bool disposing),if(disposing),if(components!=null),components.Dispose();,base
6、.Dispose(disposing);,釋放系統(tǒng)資源,1.1.2 WinForm,應(yīng)用程序中的,Main,函數(shù),/,下面代碼見:,program.cs,文件,STAThread,static void Main(),Application.Run(new Form1();,程序的主入口點(diǎn),1.1.3 WinForms,中的常用控件,可視化界面,組件統(tǒng)稱為,控件,System.Windows.Forms.Control,1.1.3 WinForms,中的常用控件,標(biāo)簽控件,按鈕控件,文本框控件,列表控件,組合框控件,1.1.3 WinForms,中的常用控件,標(biāo)簽,按鈕,組合框,列表框,文本框
7、,1.1.3,控件的本質(zhì),我,其實(shí)每一種控件都是,.NET Framework,中已經(jīng)定義好的一種類型,窗體上顯示出來的每一個(gè)具體的控件其實(shí)都是這些相應(yīng)類型的對(duì)象。通過默認(rèn)代碼可以看出。,System.Windows.Forms,Control,ButtonBase,Button,CheckBox,Label,ListControl,ComboBox,ListBox,TextBoxBase,TextBox,RadioButton,1.1.3,控件的本質(zhì),我,每一種控件類型呢也定義了很多自己的方法和屬性。這些方法和屬性將會(huì)影響和控制這些控件對(duì)象的外觀和行為。我們可以直接操作這些屬性和行為來使控件
8、進(jìn)行動(dòng)作或者改變外觀?;蛘咄ㄟ^屬性來進(jìn)行得到控件相應(yīng)的狀態(tài)和信息。,改變的方式:,1,、使用代碼修改。,2,、使用屬性窗口直接修改。,課堂示例:用戶名和密碼登陸,案例:用戶登錄設(shè)計(jì),private void button2_Click(object sender,EventArgs e),clear();,private void button1_Click(object sender,EventArgs e),if(textBox1.Text=string.Empty|textBox2.Text=string.Empty),MessageBox.Show(,信息禁止為空!,登錄提示,);,c
9、lear();,return;,if(!textBox1.Text.Equals(admin)|!textBox2.Text.Equals(admin),MessageBox.Show(,用戶名稱或密碼為空!,登錄提示,);,clear();,return;,else,MessageBox.Show(,歡迎您登錄本系統(tǒng)!,消息提示,);,clear();,public void clear(),textBox1.Clear();,textBox2.Clear();,textBox2.Focus();,消息框窗口,MessageBox.Show(“,消息文本,);,消息框,用于顯示消息,Abor
10、t,Cancel,Ignore,No,None,Ok,Retry,和,Yes,if(MessageBox.Show(“,保存文件”,“,保存,MessageBoxButtons.YesNo,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1)=DialogResult.Yes),/,保存文件所用的代碼,/,保存后的,MessageBox,1.1.3 WinForms,中的常用信息提示,消息框窗口,重載方法,Show(string text);,Show(string text,string caption);,Show(stri
11、ng text,string caption,MessageBoxButtons buttons);,Show(string text,string caption,MessageBoxButtons buttons,MessageBoxIcon icon);,private void button1_Click(object sender,EventArgs e),MessageBox.Show(,嘿,這是簡(jiǎn)單提示!,信息提示,);,private void button2_Click(object sender,EventArgs e),DialogResult result=Messag
12、eBox.Show(,嘿,這是問詢提示!,問詢提示,MessageBoxButtons.YesNo);,if(result=DialogResult.Yes),label1.Text=,您選擇了,YES;,else,label1.Text=,您選擇了,NO;,private void button3_Click(object sender,EventArgs e),DialogResult result=MessageBox.Show(,嘿,這是帶有圖標(biāo)的問詢提示!,問詢提示,MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question,Messa
13、geBoxDefaultButton.Button3,MessageBoxOptions.RightAlign);,if(result=DialogResult.Yes),label1.Text=,您選擇了圖標(biāo),YES;,else if(result=DialogResult.Cancel),label1.Text=,您選擇了圖標(biāo)取消,;,else if(result=DialogResult.No),label1.Text=,您選擇了圖標(biāo),NO;,圖標(biāo),系統(tǒng)按鈕,System.Windows.Forms,Control,ScrollableControl,ContainerControl,F
14、orm,標(biāo)題欄,控件,1.1.4,窗體,1.1.4,窗體容器簡(jiǎn)介,SDI,單文檔界面,MDI,多文檔界面,1.1.5,窗體的屬性,屬性,StartPosition,初始窗口位置,CancelButton,按下,esc,鍵后執(zhí)行那個(gè)按鈕,。,ControlBox,確定系統(tǒng)是否有圖標(biāo)和最大最小關(guān)閉按鈕,。,FormBorderStyle,指定邊框和標(biāo)題欄的外觀和行為,。,HelpButton,確定窗體的標(biāo)題欄上是否有幫助按鈕,。,KeyPreview,確定窗體鍵盤事件是否已經(jīng)向窗體注冊(cè),。,MainMenuStrip,確定鍵盤激活和多文檔合并,。,ShowInTaskbar,確定窗體是否出現(xiàn)在任務(wù)
15、欄中,。,WindowState,確定窗體的初始可視狀態(tài),。,1.1.5,窗體的常用方法和事件,方法,Activate,當(dāng)窗體被激活時(shí)候發(fā)生,MdiChildActivate,當(dāng),MDI,子窗體被激活時(shí)候發(fā)生,事件,Activated,Closed,Closing,Load,示例:顯示另一窗體,示例:顯示另一窗體,被調(diào)用的窗體類,窗體實(shí)例,=new,被調(diào)用的窗體類,();,窗體實(shí)例,.Show();,下面,在菜單的單擊事件中寫下如下的事件。,private void menuItem3_Click(object sender,EventArgs e),Form2 Mdichild=new Fo
16、rm2();,Mdichild.MdiParent=this;,Mdichild.Show();,當(dāng)然,需要再建立兩個(gè)窗體對(duì)象,,form2,和,form3,窗體,示例,1,:在,form2,窗體中進(jìn)行如下操作,單擊“發(fā)送”按鈕,應(yīng)用程序示例,首先,將,form2,的,comboBox1,下拉框填充完畢后,增加,load,事件,private void Form2_Load(object sender,EventArgs e),comboBox1.SelectedIndex=0;,textBox3.Text=;,textBox1.Focus();,其次,添加,form2,的發(fā)送信息事件,public void button1_Click(object sender,EventArgs e),if(textBox1.Text=|textBox2.Text=|comboBox1.Text=),MessageBox.Show(,姓名,或者郵件,或者提交,信息禁止為空!,信息提示,);,else,this.Hide();,Form3 childform3=new Form3(this.tex