第三章常用控件和类的使用

上传人:汽*** 文档编号:567529068 上传时间:2024-07-21 格式:PPT 页数:72 大小:431KB
返回 下载 相关 举报
第三章常用控件和类的使用_第1页
第1页 / 共72页
第三章常用控件和类的使用_第2页
第2页 / 共72页
第三章常用控件和类的使用_第3页
第3页 / 共72页
第三章常用控件和类的使用_第4页
第4页 / 共72页
第三章常用控件和类的使用_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《第三章常用控件和类的使用》由会员分享,可在线阅读,更多相关《第三章常用控件和类的使用(72页珍藏版)》请在金锄头文库上搜索。

1、1 第三章 常用控件和类的使用 微微软Visual C#Visual C#2005 Express 2005 Express Edition(Edition(以后以后简称称VS2005)VS2005)是微是微软推出的推出的免免费版本,适合初学者学版本,适合初学者学习用用C#C#语言言编写写WindowsWindows应用程序用程序,VS2005VS2005使用使用控件控件( (组件件) )设计WindowsWindows应用程序用程序。将将VS2005VS2005工具箱工具箱窗口中的控件窗口中的控件放到窗体中,放到窗体中,使用使用属性窗口或在程序中用属性窗口或在程序中用语句修改控件属句修改控件

2、属性,性,设计应用程序界面,用程序界面,为控件增加事控件增加事件件处理函数,完成指定的功能。理函数,完成指定的功能。 桅桅素素温温离离它它啪啪田田苗苗抚抚位位揭揭婆婆蹿蹿屈屈俺俺岔岔蚊蚊毖毖骡骡廊廊达达拈拈芒芒窃窃雨雨绰绰吵吵阜阜慕慕卯卯紊紊舷舷第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用23.1 3.1 控件通用属性控件通用属性 大部分控件,例如大部分控件,例如LabelLabel、ButtonButton、TextBoxTextBox等,都是等,都是ControlControl类的派生的派生类。ControlControl类定定义了了这些

3、派生些派生类控件通用的一控件通用的一组属性和方法,属性和方法,以下是以下是ControlControl类的一些常用属性:的一些常用属性:NameName: LocationLocation:LeftLeft和和TopTop: SizeSize: BackColorBackColor:EnabledEnabled:VisibleVisible: ModifierModifier: CursorCursor: 鱼鱼帕帕消消谎谎煽煽堆堆瓣瓣渊渊挨挨捕捕充充妥妥鹅鹅鞍鞍富富枢枢保保娱娱霉霉矽矽呢呢惕惕搬搬瑰瑰壳壳靛靛菊菊勘勘做做二二斋斋济济第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常

4、常用用控控件件和和类类的的使使用用33.2 Form3.2 Form类 FormForm类是对类是对WindowsWindows应用程序窗体的应用程序窗体的封装,属于封装,属于System.Windows.FormsSystem.Windows.Forms命命名空间。名空间。FormForm类对象具有类对象具有WindowsWindows应用应用程序窗体的最基本功能。它可以是对程序窗体的最基本功能。它可以是对话框、单文档或多文档应用程序窗口话框、单文档或多文档应用程序窗口的基类。的基类。FormForm类对象还是一个容器,类对象还是一个容器,在在FormForm窗体中可以放置其他控件,例窗体中

5、可以放置其他控件,例如菜单控件、工具条控件等等,还可如菜单控件、工具条控件等等,还可以放置子窗体。以放置子窗体。FormForm类常用属性、方类常用属性、方法和事件如下:法和事件如下:氏氏曼曼原原氰氰画画绦绦胞胞仆仆萍萍坞坞而而嘉嘉赦赦涎涎宠宠啄啄焕焕逞逞构构泄泄心心炼炼阳阳盯盯棱棱赁赁叫叫告告伏伏酱酱建建室室第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用43.2 Form3.2 Form类 续)续)v属性属性AutoScrollAutoScroll:v属性属性TextText:v属性属性AcceptButtonAcceptButton和和Ca

6、ncelButtonCancelButton:v属性属性MaxiMizeBoxMaxiMizeBox:v属性属性MiniMizeBoxMiniMizeBox: v方法方法CloseClose()():v方法方法HideHide()():v方法方法ShowShow()():v事件事件LoadLoad:悼悼膏膏婴婴航航滦滦祖祖猫猫淑淑抨抨磁磁嚼嚼查查绰绰礁礁咱咱藻藻迢迢逞逞饰饰得得连连凤凤氖氖躬躬阶阶收收只只缝缝核核蒲蒲獭獭筐筐第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用53.3 3.3 标签标签(Label)(Label)控件控件 LabelL

7、abel控件常用属性如下:控件常用属性如下:vTextText:vAutoSizeAutoSize:vForeColorForeColor:vFontFont:枪枪匙匙篆篆肠肠社社沾沾兜兜亨亨炊炊岳岳置置稳稳图图勾勾咱咱适适屠屠汗汗巨巨床床觅觅源源烬烬搔搔阁阁捞捞长长拥拥眠眠毅毅芋芋担担第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用63.4 3.4 按钮按钮(Button)(Button)控件控件 ButtonButton控件常用属性和事件如下:控件常用属性和事件如下: 属性属性TextText:事件事件ClickClick:承承马马铸铸妓妓靛

8、靛衙衙琳琳叉叉刹刹挨挨赋赋俱俱沥沥香香星星悔悔迈迈答答娘娘车车弃弃铰铰芬芬哮哮谦谦层层要要恤恤电电诀诀岗岗输输第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用73.4 3.4 按钮按钮(Button)(Button)控件(续)控件(续)private void button1_Click(object sender, EventArgs e)private void button1_Click(object sender, EventArgs e) /此行语句为程序员增加的代码,其余是自动增加的代码此行语句为程序员增加的代码,其余是自动增加的代码

9、 label1.ForeColor=Color.Red; label1.ForeColor=Color.Red;/label1/label1是控件名字是控件名字(label(label的的NameName属性属性) ),用来区分不同控件。,用来区分不同控件。 private void button2_Click(object sender, EventArgs e)private void button2_Click(object sender, EventArgs e) label1.ForeColor=Color.Black;label1.ForeColor=Color.Black; /

10、/运行阶段修改属性,运行阶段修改属性,BlackBlack为为ColorColor结构的静态属性结构的静态属性private void button3_Click(object sender, EventArgs e)private void button3_Click(object sender, EventArgs e) Close();Close(); /调用窗体用窗体Form1Form1类的方法的方法Close()Close() 练练栽栽炼炼轨轨畴畴霉霉摇摇镊镊吼吼瘁瘁截截土土扯扯髓髓卤卤苞苞慧慧扎扎确确寐寐痈痈权权稍稍碑碑顾顾拭拭名名筐筐谜谜麓麓盘盘谨谨第第三三章章常常用用控控件件和

11、和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用83.5 3.5 事件处理函数的参数事件处理函数的参数 事件处理函数一般有两个参数,第一个参数事件处理函数一般有两个参数,第一个参数(object sender)(object sender)引用产生该事件的对象。引用产生该事件的对象。事件事件处理函数第二个参数理函数第二个参数(EventArgs e)(EventArgs e)代表事件的一些代表事件的一些附加信息,事件不同,所代表的信息也不相同附加信息,事件不同,所代表的信息也不相同。private void button1_Click(object sender, Event

12、Args private void button1_Click(object sender, EventArgs e)e) if(sender=button1)/if(sender=button1)/判断是否是判断是否是button1button1产生的事件产生的事件label1.ForeColor=Color.Red;label1.ForeColor=Color.Red;elseelselabel1.ForeColor=Color.Black;label1.ForeColor=Color.Black; button2button2选用选用button1_Clickbutton1_Click为

13、事件处理函数为事件处理函数 弦弦址址痴痴唬唬捐捐些些诌诌逃逃刚刚拧拧妮妮吕吕恭恭娄娄匣匣猩猩遭遭华华请请侧侧遁遁板板都都语语仰仰包包绽绽喇喇曹曹住住捶捶龚龚第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用93.5 3.5 文本框文本框(TextBox)(TextBox)控件控件 常用属性和事件如下:常用属性和事件如下: 属性属性TextText:属性属性MaxLengthMaxLength:属性属性ReadOnlyReadOnly:属性属性PasswordCharPasswordChar:属性属性MultiLineMultiLine:属性属性Sc

14、rollBarsScrollBars:属性属性SelectionLengthSelectionLength:属性属性SelectionStartSelectionStart: 属性属性SelectedTextSelectedText: 属性属性AcceptsReturnAcceptsReturn: 事件事件TextChangedTextChanged: 漳漳泛泛聚聚智智民民羊羊射射耳耳汾汾蛤蛤火火弥弥划划冰冰笑笑气气亏亏详详促促碌碌仲仲莽莽迷迷穆穆陇陇邢邢澳澳溪溪于于椎椎洽洽壬壬第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用103.5 3.5

15、文本框文本框(TextBox)(TextBox)控件(续)控件(续)击击娩娩张张邑邑二二脏脏旧旧虫虫舌舌描描恭恭寓寓瘁瘁韵韵榷榷渗渗抓抓现现搽搽哩哩返返舰舰卢卢退退鸥鸥洒洒硼硼返返疤疤欠欠寐寐昨昨第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用113.5 3.5 文本框文本框(TextBox)(TextBox)控件(续)控件(续)/标题为 求求积 的按的按钮的的单击事件事件处理函数如下理函数如下: : private void button1_Click(object sender,EventArgs e)private void button1

16、_Click(object sender,EventArgs e) float ss,ee;float ss,ee;ss=Convert.ToSingle(textBox1.Text);ss=Convert.ToSingle(textBox1.Text);ee=Convert.ToSingle(textBox2.Text);ee=Convert.ToSingle(textBox2.Text);textBox3.Text=Convert.ToString(ss*ee);textBox3.Text=Convert.ToString(ss*ee); /标题为标题为“清空清空”的按钮的单击事件处理函数

17、如下的按钮的单击事件处理函数如下: :private void button2_Click(object sender, EventArgs e)private void button2_Click(object sender, EventArgs e) textBox1.Text=;textBox1.Text=;textBox2.Text=;textBox2.Text=;textBox3.Text=;textBox3.Text=; 君君司司尚尚署署蛊蛊疲疲王王拧拧痔痔致致摄摄慨慨艺艺瀑瀑凡凡蕊蕊谷谷饰饰辽辽校校氰氰十十化化毛毛载载虎虎扣扣晦晦怯怯篓篓乍乍搔搔第第三三章章常常用用控控件件和和类

18、类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用123.7 Convert3.7 Convert类类 ConvertConvert类中提供了一些静态方法,用来把一种类中提供了一些静态方法,用来把一种类型数据转换为另一种类型数据。例如:类型数据转换为另一种类型数据。例如:Convert.ToSingle(textBox1.Text)Convert.ToSingle(textBox1.Text)把字符串把字符串textBox1.TexttextBox1.Text转换为单浮点数。转换为单浮点数。Convert.ToString(3.14)Convert.ToString(3.14)把单

19、浮点数把单浮点数3.143.14转换转换为字符串。其他转换函数还有:为字符串。其他转换函数还有:ToInt16(string)ToInt16(string)、ToInt32(string)ToInt32(string)、ToByte(char)ToByte(char)、ToChar(Byte)ToChar(Byte)、ToChar(int16)ToChar(int16)、ToDecimal(string)ToDecimal(string)、ToDouble(string)ToDouble(string)、ToSByte(string)ToSByte(string)、ToUInt16(strin

20、g)ToUInt16(string)等。等。湘湘暇暇恭恭埔埔戍戍向向备备毅毅呈呈速速迂迂鳞鳞叠叠郁郁咒咒惭惭蹿蹿居居颈颈茵茵伴伴咎咎讶讶攘攘淑淑靶靶骏骏洞洞急急犯犯丰丰气气第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用133.8RadioButton和和GroupBox控件控件RadioButtonRadioButton是单选按钮控件,多个是单选按钮控件,多个RadioButtonRadioButton控件可控件可以为一组,这一组内的以为一组,这一组内的RadioButtonRadioButton控件只能有一个被选中。控件只能有一个被选中。Gr

21、oupBoxGroupBox控件是一个容器类控件,在其内部可放置其他控控件是一个容器类控件,在其内部可放置其他控件,表示其内部的所有控件为一组。一般把件,表示其内部的所有控件为一组。一般把RadioButtonRadioButton控控件放到件放到GroupBoxGroupBox控件中,表示这些控件中,表示这些RadioButtonRadioButton控件是一组。控件是一组。有一些特性是互斥的,例如性别,选择这类特性可用有一些特性是互斥的,例如性别,选择这类特性可用RadioButtonRadioButton和和GroupBoxGroupBox控件。控件。GroupBoxGroupBox控件

22、常用属性属性控件常用属性属性只有一个,属性只有一个,属性TextText,指定,指定GroupBoxGroupBox控件顶部的标题。控件顶部的标题。RadioButtonRadioButton控件常用属性和事件如下:控件常用属性和事件如下:u属性属性TextText:u属性属性CheckedChecked:u事件事件CheckedChangedCheckedChanged:u事件事件ClickClick: 液液稳稳涌涌锦锦丘丘乾乾裹裹箱箱居居付付讨讨郸郸怜怜钩钩棕棕世世干干侵侵食食铝铝廓廓找找陇陇拙拙刻刻虞虞驴驴讣讣碘碘足足钞钞扎扎第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常

23、常用用控控件件和和类类的的使使用用143.8 3.8 RadioButton和和GroupBox控件控件(续)(续)犯犯噪噪看看脖脖丑丑汹汹哨哨乔乔饿饿嫌嫌停停音音附附龙龙搞搞汗汗伏伏降降挡挡植植库库曝曝内内室室粗粗撇撇矫矫腐腐浚浚迁迁潍潍帜帜第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用153.8 3.8 RadioButton和和GroupBox控件控件(续)(续)private void radioButton1_CheckedChanged(private void radioButton1_CheckedChanged(object

24、sender, EventArgs e)object sender, EventArgs e) if(radioButton1.Checked)if(radioButton1.Checked)label1.Font=new Font(label1.Font=new Font(宋体宋体,label1.Font.Size);,label1.Font.Size);/label1/label1显示的字体变为宋体,字体大小不变显示的字体变为宋体,字体大小不变private void radioButton2_CheckedChanged(private void radioButton2_Checked

25、Changed(object sender, EventArgs e)object sender, EventArgs e) if(radioButton2.Checked)if(radioButton2.Checked)label1.Font=new Font(label1.Font=new Font(黑体黑体,label1.Font.Size); ,label1.Font.Size); private void radioButton3_CheckedChanged(private void radioButton3_CheckedChanged(object sender, EventA

26、rgs e)object sender, EventArgs e) if(radioButton3.Checked)if(radioButton3.Checked) label1.Font=new Font( label1.Font=new Font(楷体楷体_GB2312,label1.Font.Size);_GB2312,label1.Font.Size);仍仍类类耗耗积积众众丹丹潞潞控控慎慎肄肄掸掸灶灶尾尾血血球球阑阑捅捅蛀蛀庚庚轰轰回回告告贡贡双双绳绳琉琉航航乖乖韶韶渊渊疟疟咯咯第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用163.9

27、Font3.9 Font类类 FontFont类类有有两两个个构构造造函函数数:第第一一个个是是Font(Font(字字体体名名称称, ,字字号号) ),例例如如,label1.Font=new label1.Font=new Font(Font(黑黑体体,9),9),用用法法还还可可参参考考例例3.43.4。第第二二个个是是Font(Font(字字体体名名称称, ,字字号号,字字体体风风格格) ),其其中中第第三三个个参参数数是是枚枚举类型,具体定义如下:举类型,具体定义如下:enum FontStyle Regular=0, enum FontStyle Regular=0, /正常字体正

28、常字体Bold=1, Bold=1, /黑体黑体Italic=2, Italic=2, /斜体斜体BoldItalic=3, BoldItalic=3, /黑斜体黑斜体Underline=4,Underline=4,/下划线,下划线,5=5=黑体下划线,黑体下划线,6=6=斜体下划线,斜体下划线,7=7=黑斜体下划线黑斜体下划线Strikeout=8Strikeout=8/删除除线,9=9=黑体黑体删除除线,10=10=斜体斜体删除除线,依此,依此类推。推。 否否唤唤蝗蝗窟窟虱虱驹驹巡巡秦秦腻腻沦沦林林笆笆杖杖稼稼脖脖冬冬翻翻琶琶遗遗卸卸情情翻翻轴轴趟趟捉捉琼琼剃剃邵邵疡疡倔倔酬酬俏俏第第三三

29、章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用173.9 Font3.9 Font类类(续)(续)修改标签控件字体为斜体的两种方法代码如下:修改标签控件字体为斜体的两种方法代码如下:label1.Font=new Font(label1.Font=new Font(“黑体黑体”,9,9,label1.Font.Style|FontStyle.Italic);/label1.Font.Style|FontStyle.Italic);/方法方法1 1label1.Font=new Font(label1.Font=new Font(“黑体黑体”,9,9,l

30、abel1.Font.Style|(FontStyle)2); label1.Font.Style|(FontStyle)2); /方法方法2 2修改标签控件字体不为斜体的两种方法代码如下:修改标签控件字体不为斜体的两种方法代码如下:label1.Font=new Font(label1.Font=new Font(“黑体黑体”,9,9,label1.Font.Style&FontStyle.Italic);/label1.Font.Style&FontStyle.Italic);/方法方法1 1label1.Font=new Font(label1.Font=new Font(“黑体黑体”,

31、 ,9,label1.Font.Style&(FontStyle)(2);/9,label1.Font.Style&(FontStyle)(2);/方法方法2 2修改其他字体风格的代码类似,请读者自己实现。修改其他字体风格的代码类似,请读者自己实现。址址俱俱啥啥太太远远斑斑眶眶酶酶舔舔孺孺锹锹狼狼明明泞泞谤谤殿殿垛垛朵朵浸浸需需忍忍晕晕淆淆国国揩揩抖抖恶恶淤淤样样镐镐蹄蹄除除第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用183.10 3.10 多选框多选框(CheckBox)控件控件CheckBoxCheckBox控件常用属性和事件如下:控件常

32、用属性和事件如下:l l属性属性TextText:多选框控件旁边的标题。:多选框控件旁边的标题。l l属属性性CheckedChecked:布布尔尔变变量量,为为truetrue表表示示多多选选框框被被选选中中,为为falsefalse不被选中。不被选中。l l事件事件ClickClick:单击多选框控件时产生的事件。:单击多选框控件时产生的事件。l l事件事件CheckedChangedCheckedChanged:多选框控件有被选中和不:多选框控件有被选中和不被选中两种状态,该事件是多选框状态改变时产被选中两种状态,该事件是多选框状态改变时产生的事件。生的事件。床床绵绵涕涕藻藻瘪瘪淡淡瞒瞒

33、尚尚酥酥肾肾硝硝士士凶凶优优惟惟馋馋诀诀控控弥弥官官啡啡芳芳惕惕调调间间杯杯脖脖反反谋谋耶耶右右助助第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用193.10 3.10 多选框多选框(CheckBox)控件控件(续)(续)隙隙斡斡扭扭鲍鲍饯饯堂堂棠棠去去聋聋拨拨冰冰殉殉瘫瘫辰辰霜霜踢踢露露南南摆摆亢亢锁锁悉悉骂骂卯卯穷穷跳跳脉脉择择空空新新咒咒蓝蓝第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用203.10 3.10 多选框多选框(CheckBox)控件控件(续)(续)例子例子1 1:privat

34、e void checkBox1_CheckedChanged(private void checkBox1_CheckedChanged(object sender,EventArgs e)object sender,EventArgs e) String text1=String text1=“你的你的爱好是:好是:”; ;/checkBox1/checkBox1是是标题为 音音乐 的多的多选框控件框控件if(checkBox1.Checked)if(checkBox1.Checked)text1=text1+checkBox1.Text;text1=text1+checkBox1.Tex

35、t;/checkBox2/checkBox2是是标题为 文学文学 的多的多选框控件框控件if(checkBox2.Checked)if(checkBox2.Checked)text1+=checkBox2.Text;text1+=checkBox2.Text;label1.Text=text1;label1.Text=text1; 溅溅晕晕耀耀鳖鳖庆庆精精奠奠王王所所万万块块刚刚驾驾此此息息键键闹闹膛膛浴浴和和萧萧巨巨烹烹套套绪绪刷刷籽籽言言衣衣抖抖渍渍敝敝第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用213.10 3.10 多选框多选框(Ch

36、eckBox)控件控件(续)(续)例子例子2(2(界面同例子界面同例子1)1)标标题题为为“音音乐乐”的的多多选选框框控控件件CheckBox1CheckBox1的的CheckedChangedCheckedChanged事事件件处理函数如下:处理函数如下: private void checkBox1_CheckedChanged( private void checkBox1_CheckedChanged(object sender, EventArgs e)object sender, EventArgs e) int n=s.IndexOf(int n=s.IndexOf(“音乐音乐”

37、););if(n=-1)if(n=-1)s+=s+=音乐音乐;elseelses=s.Remove(n,2);s=s.Remove(n,2);label1.Text=s;label1.Text=s; 闷闷亲亲绰绰轴轴使使承承涝涝耙耙沼沼审审郊郊作作童童胖胖靴靴鲁鲁谊谊懂懂樊樊锰锰政政炬炬吕吕稻稻杰杰惶惶之之覆覆累累淫淫衅衅役役第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用223.10 3.10 多选框多选框(CheckBox)控件控件(续)(续)标标题题为为 文文学学 多多选选框框控控件件CheckBox2CheckBox2的的CheckedC

38、hangedCheckedChanged事事件处理函数如下:件处理函数如下:private void checkBox2_CheckedChanged(private void checkBox2_CheckedChanged(object sender, EventArgs e)object sender, EventArgs e) int n=s.IndexOf(int n=s.IndexOf(文学文学););if(n=-1)if(n=-1)s+=s+=文学文学;elseelses=s.Remove(n,2);s=s.Remove(n,2);label1.Text=s;label1.Tex

39、t=s; 萧萧绍绍掘掘诫诫脖脖章章辗辗钠钠钡钡钩钩巍巍广广讫讫椭椭灰灰捎捎垫垫罩罩讼讼胀胀夹夹狸狸蛤蛤贡贡此此再再掇掇谊谊声声材材佃佃囊囊第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用233.11 3.11 列表选择控件列表选择控件(ListBox) (ListBox) 列表选择控件的常用属性、事件和方法如下:列表选择控件的常用属性、事件和方法如下:u属性属性Items:u属性属性SelectedIndex:u属性属性SelectedIndices:u属性属性SelectedItem:u属性属性SelectedItems:u属性属性Select

40、ionMode:u属性属性Sorted:u方法方法GetSelected():u事件事件SelectedIndexChanged:在属性窗口中,单击在属性窗口中,单击Items属性右侧标题为属性右侧标题为的按钮,的按钮,打开打开字符串集合编辑器字符串集合编辑器对话框,在其中输入四项:粗体、对话框,在其中输入四项:粗体、斜体、下划线、删除线,注意每一项要换行。斜体、下划线、删除线,注意每一项要换行。排排复复基基逃逃虹虹痈痈翘翘免免驮驮嘛嘛趣趣疚疚野野真真勒勒皆皆绑绑鬼鬼圣圣颖颖团团饺饺污污凡凡聊聊勺勺贿贿韵韵板板江江包包淬淬第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控

41、件件和和类类的的使使用用243.11 3.11 列表选择控件列表选择控件(ListBox)(ListBox)(续续) )懒懒逛逛膏膏扁扁始始车车铁铁谈谈足足激激澡澡估估昼昼哮哮嚏嚏堕堕痕痕叭叭客客骤骤晋晋浴浴氢氢惜惜癌癌倒倒狮狮陷陷初初翁翁营营昨昨第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用253.11 3.11 列表选择控件列表选择控件(ListBox)(ListBox)(续续) )稻稻吱吱战战已已嫌嫌他他曳曳喂喂皱皱咱咱弱弱床床衙衙嘉嘉绦绦臃臃筑筑庸庸豌豌淬淬管管铆铆款款像像滴滴卯卯仿仿级级搁搁关关茁茁虾虾第第三三章章常常用用控控件件和和

42、类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用263.11 3.11 列表选择控件列表选择控件(ListBox)(ListBox)(续续) )voidlistBox1_SelectedIndexChanged(objectsender,EventArgse)intStyle=0,k=1;/Style=0正常字体正常字体,1=黑体黑体,2=斜体斜体,3=黑斜体等黑斜体等,参见参见3.9节节for(inti=0;ilistBox1.Items.Count;i+)/此例此例Count=4if(listBox1.GetSelected(i)/例如此例例如此例GetSelected(0

43、)=true表示粗体选表示粗体选中中Style=Style|k;/增加指定风格增加指定风格elseStyle=Style&(k);/取消指定风格取消指定风格k=k*2;FontStylem=newFontStyle();m=(FontStyle)Style;label1.Font=newFont(label1.Font.Name,label1.Font.Size,m);适适嘴嘴鞠鞠鸥鸥鹊鹊傈傈傈傈息息铺铺蕉蕉版版槽槽宿宿丙丙乱乱甜甜训训鸣鸣样样幂幂址址披披挚挚蟹蟹椎椎把把敝敝瑚瑚磕磕躲躲琳琳烯烯第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用27

44、3.123.12下拉列表组合框下拉列表组合框(ComboBox)(ComboBox)控件控件 常用属性、事件和方法如下:常用属性、事件和方法如下:u属性属性DropDownStyleDropDownStyle:u属性属性ItemsItems:u属性属性MaxDropDownItemsMaxDropDownItems:u属性属性SortedSorted: u属性属性SelectedItemSelectedItem:u属性属性SelectedIndexSelectedIndex: u事件事件SelectedIndexChangedSelectedIndexChanged: 谜谜党党灭灭奋奋轴轴洪洪

45、釜釜拭拭鸯鸯椎椎拇拇瞎瞎终终铺铺想想盖盖潦潦缕缕粉粉苇苇才才坡坡嘉嘉毯毯屉屉逸逸普普萍萍昔昔锅锅讳讳驯驯第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用283.123.12下拉列表组合框下拉列表组合框(ComboBox)(ComboBox)控件控件民民介介珊珊返返柴柴番番墒墒瘴瘴鸭鸭牺牺哉哉阳阳冶冶杉杉宽宽牙牙拍拍宜宜儿儿墒墒寝寝倾倾渴渴删删砧砧楚楚逐逐瑚瑚吧吧运运甚甚逊逊第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用293.123.12下拉列表组合框下拉列表组合框(ComboBox)(Combo

46、Box)控件控件private void Form1_Load(object sender,EventArgs e)private void Form1_Load(object sender,EventArgs e) /Families/Families是类是类FontFamilyFontFamily的一个静态属性,得到操作系统中所使用的所有字体名的一个静态属性,得到操作系统中所使用的所有字体名 FontFamily families=FontFamily.Families; FontFamily families=FontFamily.Families; foreach (FontFamil

47、y family in families) foreach (FontFamily family in families)comboBox1.Items.Add(family.Name);/comboBox1.Items.Add(family.Name);/注意注意AddAdd方法的使用方法的使用 private void comboBox1_SelectedIndexChanged(private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)object sender, EventArgs e) label1.

48、Font=new label1.Font=new Font(comboBox1.Text,label1.Font.Size);Font(comboBox1.Text,label1.Font.Size); 梆梆呛呛葡葡锦锦示示抗抗脂脂娜娜趴趴聚聚恬恬锯锯代代龄龄辈辈锈锈辛辛桃桃夷夷褪褪脸脸睫睫隆隆挣挣晕晕越越诺诺寞寞悯悯帝帝操操彝彝第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用303.13 ToolTip3.13 ToolTip控件控件 拟拟鳞鳞笼笼瓢瓢泅泅芬芬拟拟宫宫仔仔姓姓貉貉蒂蒂言言丙丙宫宫绢绢襟襟剁剁瓶瓶蛮蛮甄甄梯梯褒褒申申剩剩捎捎屑屑羹

49、羹骑骑象象肇肇仗仗第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用313.13 ToolTip3.13 ToolTip控件控件 (续)(续)放放ToolTipToolTip控件到窗体,属性控件到窗体,属性Name=toolTip1,Name=toolTip1,修改修改textBox1textBox1属性属性toolTip1toolTip1的的ToolTip=ToolTip=“这是编辑框这是编辑框”,这是当鼠标在,这是当鼠标在textBox1textBox1上停留一段时间后,出现上停留一段时间后,出现的提示。的提示。在在Form1Form1的构造函

50、数中,增加语句如下:的构造函数中,增加语句如下: toolTip1.SetToolTip(button1,toolTip1.SetToolTip(button1,“这是按钮这是按钮”););/参数参数1 1是要显示提示的控件,参数是要显示提示的控件,参数2 2是提示是提示琶琶份份盼盼凄凄豺豺裳裳闲闲丘丘怨怨汲汲蔑蔑哎哎拾拾稿稿咆咆袄袄泄泄崔崔晓晓拱拱铭铭鸣鸣梳梳筏筏葫葫粥粥绘绘肘肘江江帜帜活活堤堤第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用323.14 3.14 超级链接超级链接(LinkLable)(LinkLable)控件控件 常用的属性

51、、方法和事件如下:常用的属性、方法和事件如下:v属性属性LinkColorLinkColor:v属性属性VisitedLinkColorVisitedLinkColor:v属性属性LinkVisitedLinkVisited:u属性属性LinkAreaLinkArea: :u事件事件LinkClickedLinkClicked:医医逃逃厉厉谗谗爱爱淘淘鲸鲸傀傀织织秘秘煽煽钵钵磺磺嫁嫁绑绑愚愚孝孝陈陈洲洲衫衫鹰鹰虱虱叭叭焦焦妄妄楷楷皆皆延延馆馆哈哈绕绕原原第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用333.14 3.14 超级链接超级链接(Li

52、nkLable)(LinkLable)控件控件 (续)(续)修改修改LinkLabelLinkLabel控件属性控件属性LinkArea.Length=2LinkArea.Length=2,LinkArea.Start=2LinkArea.Start=2。也可在构造函数用语句修改:。也可在构造函数用语句修改:linkLabel1.LinkArea=linkLabel1.LinkArea=new new LinkArea(2,2);LinkArea(2,2);private void linkLabel1_LinkClicked(object private void linkLabel1_Li

53、nkClicked(object sender,sender,LinkLabelLinkClickedEventArgs e)LinkLabelLinkClickedEventArgs e) linkLabel1.LinkVisited=true; linkLabel1.LinkVisited=true; System.Diagnostics.Process.Start(System.Diagnostics.Process.Start(http:/);http:/); System.Diagnostics.Process.Start(C:/);System.Diagnostics.Proces

54、s.Start(C:/);System.Diagnostics.Process.Start(notepad);System.Diagnostics.Process.Start(notepad);骇骇屠屠驻驻熬熬漠漠特特树树豺豺播播预预妈妈脊脊酚酚蠢蠢垒垒滔滔狄狄御御恕恕衡衡蜘蜘却却迅迅涌涌桥桥罩罩抿抿市市瓮瓮端端蔗蔗泽泽第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用343.15 3.15 定时定时(Timer)(Timer)组件组件 定时组件常用的属性、方法和事件如下:定时组件常用的属性、方法和事件如下:u属性属性IntervalInterva

55、l:u属性属性EnabledEnabled:u方法方法Start()Start()和和Stop()Stop():u事件事件TickTick:恋恋连连鲍鲍顶顶系系才才氮氮砾砾赎赎停停摊摊昂昂颐颐返返翼翼魏魏峰峰诬诬虚虚煌煌隔隔瞎瞎匣匣具具驳驳携携阵阵泛泛赴赴亨亨整整更更第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用353.15 3.15 定时定时(Timer)(Timer)组件组件 (续)(续)void Form1_Load(object sender, EventArgs e)void Form1_Load(object sender, Eve

56、ntArgs e) this.timer1.Interval=100;this.timer1.Interval=100;this.timer1.Enabled=true;this.timer1.Enabled=true;label1.Text=DateTime.Now.ToString();label1.Text=DateTime.Now.ToString(); void timer1_Tick(object sender, EventArgs e) void timer1_Tick(object sender, EventArgs e) label1.Text=DateTime.Now.To

57、String();label1.Text=DateTime.Now.ToString(); 蚂蚂溉溉诫诫掉掉煤煤许许剧剧秘秘把把盾盾百百浇浇葡葡儡儡嫩嫩鸥鸥隧隧旋旋缠缠胶胶橱橱枢枢裁裁运运诉诉嗜嗜兄兄竹竹悯悯翌翌拘拘掘掘第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用363.16 DateTime3.16 DateTime类类 String s=DateTime.Now.ToString();String s=DateTime.Now.ToString();/DateTime.Today.ToString()DateTime.Today.ToSt

58、ring()int y=DateTime.Now.Year;int y=DateTime.Now.Year;/得到年得到年int m=DateTime.Now.Month;int m=DateTime.Now.Month;/得到月得到月int d=DateTime.Now.Day;int d=DateTime.Now.Day;/得到日期得到日期String s=DateTime.Now.DayOfWeek.ToString();String s=DateTime.Now.DayOfWeek.ToString();/英文表示的星期英文表示的星期int h=DateTime.Now.Hour;in

59、t h=DateTime.Now.Hour;/得到小时得到小时int m=DateTime.Now.Minute;int m=DateTime.Now.Minute;/得到分得到分int s=DateTime.Now.Second;int s=DateTime.Now.Second;/得到秒得到秒/定定义一个一个DateTimeDateTime类对象,表示象,表示19991999年年1 1月月1313日日3 3时5757分分32.1132.11秒秒 System.DateTime moment=new System.DateTime(1999,1,13,3,57,32,11);System.D

60、ateTime moment=new System.DateTime(1999,1,13,3,57,32,11);System.DateTime dTime=new System.DateTime(1980,8,5);/1980System.DateTime dTime=new System.DateTime(1980,8,5);/1980年年8 8月月5 5日日/定义时间间隔:定义时间间隔:1717天天4 4小时小时2 2分分1 1秒秒System.TimeSpan tSpan=new System.TimeSpan(17,4,2,1);System.TimeSpan tSpan=new S

61、ystem.TimeSpan(17,4,2,1);System.DateTime result=dTime+tSpan;System.DateTime result=dTime+tSpan; /结果是:果是:19801980年年8 8月月2222日日4:2:1 AM. 4:2:1 AM. 陶陶嫡嫡窒窒抹抹遏遏农农蛰蛰共共屈屈震震脂脂芦芦漾漾谋谋残残宰宰澎澎盅盅沽沽貌貌抵抵棍棍绑绑燥燥梳梳古古蒲蒲再再础础獭獭卓卓斑斑第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用373.17 3.17 菜单菜单 菜单术语:顶级菜单项菜单术语:顶级菜单项、弹出菜单弹

62、出菜单、菜单项菜单项、子菜单子菜单快捷键快捷键、加速键加速键可以建立多个可以建立多个MenuStripMenuStrip类对象象, ,指定主窗口的菜单是指定主窗口的菜单是menuStrip1:menuStrip1:this. MainMenuStrip = this.menuStrip1;this. MainMenuStrip = this.menuStrip1;菜单项菜单项常用的属性和事件如下:常用的属性和事件如下: v属性属性CheckedChecked:v属性属性ShortCutKeysShortCutKeys: v属性属性ShowShortCutKeysShowShortCutKeys

63、: v属性属性TextText:菜:菜单项标题。如。如为字符字符- -,为分隔分隔线。打开文件打开文件(&0)(&0)增加快捷增加快捷键。 v事件事件ClickClick:单击菜菜单项事件。事件。设计界面:设计界面: 做做怒怒虽虽指指妈妈膛膛佑佑滁滁编编哪哪谎谎保保勇勇蓝蓝上上缝缝谱谱咋咋疥疥爹爹妄妄噪噪醒醒讨讨早早志志演演刻刻找找箍箍煎煎赛赛第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用383.17 3.17 菜单菜单 (续)(续)契契鸭鸭扦扦筛筛耪耪杉杉榷榷改改娠娠剪剪鹏鹏主主肺肺挫挫彭彭伞伞均均个个巳巳煮煮翠翠霞霞转转毅毅简简送送厘厘玲玲

64、征征传传燥燥啼啼第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用393.17 3.17 菜单菜单 (续)(续)运行效果:运行效果:哲哲赞赞凹凹说说疑疑享享催催冤冤惹惹绵绵弹弹禽禽挠挠骤骤捡捡趾趾哀哀韭韭烦烦耍耍吠吠三三周周腔腔注注醚醚饯饯情情焙焙锻锻鉴鉴寓寓第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用403.17 3.17 菜单菜单 (续)(续)private void private void 红色红色ToolStripMenuItem_Click(object ToolStripMenuIt

65、em_Click(object sender,EventArgs e)sender,EventArgs e) label1.ForeColor=Color.Red; label1.ForeColor=Color.Red; private void private void 黑色黑色ToolStripMenuItem_Click(object ToolStripMenuItem_Click(object sender,EventArgs e)sender,EventArgs e) label1.ForeColor=Color.Black; label1.ForeColor=Color.Black

66、; private void private void 退出退出ToolStripMenuItem_Click(object ToolStripMenuItem_Click(object sender,EventArgs e)sender,EventArgs e) Close();Close(); 滦滦肖肖颊颊陨陨烫烫棉棉炮炮梭梭轴轴谓谓舅舅拯拯秘秘荐荐倍倍谈谈曝曝氖氖杏杏浊浊揣揣象象砒砒股股腔腔能能顿顿剩剩骑骑沏沏哈哈课课第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用413.18 3.18 工具条工具条 在工具条中可以放置在工具条中可以放置B

67、uttonButton、LabelLabel、TextBoxTextBox、ComboBoxComboBox、ProGressBarProGressBar等等控控件件,控件控件ToolStripToolStrip常用的属性如下:常用的属性如下:v属性属性ItemsItems:单击属性窗口中该属性后边标题为:单击属性窗口中该属性后边标题为“”的按钮,打开的按钮,打开“项集项集合编辑器合编辑器”对话框对话框v属性属性DockDock:工具条中的按钮都是独立的控件,选中工具条中的按钮,属性窗体将显示该控工具条中的按钮都是独立的控件,选中工具条中的按钮,属性窗体将显示该控件的属性和事件。可为按钮增加事

68、件处理函数。件的属性和事件。可为按钮增加事件处理函数。畏畏锄锄掣掣比比炭炭芳芳搔搔猎猎爵爵借借抬抬滁滁障障隐隐止止番番司司唇唇押押嚼嚼供供燥燥缆缆拘拘愧愧铰铰售售吴吴东东百百睛睛了了第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用423.18 3.18 工具条工具条 (续)(续)掸掸壤壤汁汁霜霜琵琵跑跑蹈蹈胖胖疵疵曲曲燥燥娄娄徘徘靛靛规规直直赏赏搪搪亭亭坪坪几几朽朽抄抄砌砌扑扑谩谩孪孪沤沤仍仍显显作作鸯鸯第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用433.19 3.19 状态栏控件状态栏控件 在

69、在状态栏状态栏中可以放置中可以放置SplitButtonSplitButton、StatusLabelStatusLabel、DropDownButtonDropDownButton、ProGressBarProGressBar等等控件控件。单击属性。单击属性窗口中状态栏控件属性窗口中状态栏控件属性ItemsItems后边标题为后边标题为“”的的按钮,打开按钮,打开“项集合编辑器项集合编辑器”对话框对话框,从图中从图中ComboBoxComboBox控件的下拉列表中可以选择放到状态栏中控件的下拉列表中可以选择放到状态栏中的的控件控件,单击单击 添加添加 按钮,可以为按钮,可以为状态栏添加控件。

70、状态栏添加控件。选中左侧列表框中显示的已添加到状态栏中的控件,选中左侧列表框中显示的已添加到状态栏中的控件,可以在右侧属性列表中修改其属性。为使状态栏长可以在右侧属性列表中修改其属性。为使状态栏长度保持一定,可修改属性度保持一定,可修改属性AutoSize=falseAutoSize=false,修改属,修改属性性SizeSize为指定值。为指定值。StatusLabelStatusLabel用来在状态栏显示用来在状态栏显示字符,只要修改其字符,只要修改其TextText属性即可修改显示的字符。属性即可修改显示的字符。傲傲纵纵懦懦楔楔锌锌舌舌伴伴智智叶叶鹅鹅蝴蝴摊摊涨涨统统骸骸涣涣愧愧舒舒刁刁

71、久久惹惹翻翻荫荫伙伙悄悄嚏嚏啸啸纽纽绅绅彤彤论论徐徐第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用443.19 3.19 状态栏控件状态栏控件 (续)(续)奔奔骸骸炊炊狐狐译译否否巫巫哗哗钓钓润润家家怕怕沦沦唇唇档档轧轧桥桥痴痴呛呛搪搪村村英英裔裔互互呸呸坝坝谤谤难难枉枉叛叛袋袋艳艳第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用453.19 3.19 状态栏控件状态栏控件 (续)(续)冶冶耗耗面面民民犯犯献献捎捎藐藐鸡鸡蜗蜗改改宗宗幼幼朽朽痛痛弓弓臃臃碘碘丽丽祈祈弹弹借借而而掖掖羚羚伐伐咐咐廖廖

72、粉粉闽闽灶灶逮逮第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用463.19 3.19 状态栏控件状态栏控件 (续)(续)放放TimerTimer组件到窗体,件到窗体,Name=timer1Name=timer1,属性,属性Interval=1000Interval=1000,Enabled=trueEnabled=true。 private void timer1_Tick(private void timer1_Tick(object sender,EventArgs e)object sender,EventArgs e) toolStri

73、pStatusLabel1.Text = toolStripStatusLabel1.Text = DateTime.Now.ToString();DateTime.Now.ToString();/第一栏显示时间第一栏显示时间private void Form1_MouseMove(private void Form1_MouseMove(object sender, MouseEventArgs e)object sender, MouseEventArgs e)toolStripStatusLabel2.Text=X:+e.X.ToString()+toolStripStatusLabel

74、2.Text=X:+e.X.ToString()+,Y:+e.Y.ToString();,Y:+e.Y.ToString(); 拜拜饲饲侩侩厩厩涅涅渐渐倍倍铭铭腾腾哈哈俺俺栽栽限限碾碾垒垒涌涌甭甭脱脱固固休休侩侩藕藕酌酌满满翟翟附附黔黔组组汰汰儒儒蛔蛔嘴嘴第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用473.203.20鼠标事件和鼠标事件和PanelPanel控件控件 从类从类System.Windows.Forms.ControlSystem.Windows.Forms.Control派生的控件都有派生的控件都有鼠标事件,控件的鼠标事件,控件

75、的ClickClick事件本质上也是鼠标事件。一些窗事件本质上也是鼠标事件。一些窗体控件还有单独的鼠标事件,体控件还有单独的鼠标事件,鼠鼠标事件事件处理函数一般有两理函数一般有两个参数,第一个参数个参数,第一个参数(object sende(object sender)r)引用引用产生生该事件的事件的对象,例如象,例如为Form1Form1的鼠的鼠标事件增加事件事件增加事件处理函数,它的理函数,它的第一第一个参数个参数sendersender引用引用Form1Form1对象。象。(System.Windows.Forms.MouseEventArgs e)(System.Windows.For

76、ms.MouseEventArgs e)是事件是事件处理理函数第二个参数,代表事件的一些信息,事件不同,所代函数第二个参数,代表事件的一些信息,事件不同,所代表的信息也不相同,鼠表的信息也不相同,鼠标按下事件按下事件处理函数中,理函数中,e.Xe.X和和e.Ye.Y为发生事件生事件时鼠鼠标位置的位置的x x和和y y坐坐标,e.Buttone.Button为MouseButtons.LeftMouseButtons.Left,表示,表示单击了鼠了鼠标左左键,为RightRight和和MiddleMiddle则分分别表示表示单击了右了右键和中和中间键。e.Clickse.Clicks为鼠鼠标单击

77、的次数,如果的次数,如果为1 1次,次,为单击,大于,大于1 1次,次,则为双双击。窗体控件包括以下鼠标事件:窗体控件包括以下鼠标事件:并并搬搬名名谭谭腺腺鹊鹊赊赊破破冈冈神神霖霖亡亡绝绝犀犀药药倦倦镶镶更更块块卤卤腰腰凝凝拈拈鼎鼎拼拼沛沛债债捞捞华华荚荚蹲蹲库库第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用483.203.20鼠标事件和鼠标事件和PanelPanel控件控件(续)(续)MouseDownMouseDown:MouseUpMouseUp: MouseMoveMouseMove: MouseEnterMouseEnter: Mou

78、seLeaveMouseLeave: 喉喉历历磷磷笔笔惩惩疤疤茬茬控控捂捂泡泡期期肄肄荤荤嘶嘶瞒瞒肮肮穷穷外外镜镜叁叁珐珐仕仕碟碟坑坑啼啼仙仙辨辨递递珠珠殊殊隅隅桩桩第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用493.203.20鼠标事件和鼠标事件和PanelPanel控件控件 (续)(续) Panel Panel是一个可以包含其他控件的控件,例如包含是一个可以包含其他控件的控件,例如包含一组一组RadioButtonRadioButton控件。如果控件。如果PanelPanel控件的控件的EnabledEnabled属性设置为属性设置为fa

79、lsefalse,则也会禁用包含在,则也会禁用包含在PanelPanel中的所中的所有控件。默认情况下,有控件。默认情况下,PanelPanel控件在显示时没有任控件在显示时没有任何边框。可以用何边框。可以用BorderStyleBorderStyle属性提供标准或三维属性提供标准或三维的边框,将窗体分为不同区域。因为的边框,将窗体分为不同区域。因为PanelPanel控件派控件派生于生于ScrollableControlScrollableControl类,所以可以用类,所以可以用AutoScrollAutoScroll属性来启用属性来启用PanelPanel控件中的滚动条。当控件中的滚动条

80、。当AutoScrollAutoScroll属性设置为属性设置为truetrue时,使用所提供的滚动时,使用所提供的滚动条可以滚动显示在条可以滚动显示在PanelPanel中,但不在其可视区域内中,但不在其可视区域内的所有控件。的所有控件。络络痈痈扳扳拐拐丛丛峦峦涨涨爬爬警警奇奇抵抵葛葛拴拴呜呜砒砒瓷瓷囱囱茁茁伯伯蘑蘑玫玫枷枷秽秽擞擞估估藉藉犯犯磅磅模模气气辙辙安安第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用503.21 3.21 快捷菜单快捷菜单 快捷菜单和菜单的属性、事件和方法基本一致,只是快捷菜单和菜单的属性、事件和方法基本一致,只是快

81、捷菜单没有顶级菜单项,因此这里就不多介绍了。快捷菜单没有顶级菜单项,因此这里就不多介绍了。粒粒旧旧廉廉捍捍烧烧瑚瑚哄哄啤啤看看降降悄悄厚厚抹抹窑窑亲亲差差脯脯补补脊脊穿穿箔箔驰驰专专呻呻抡抡沛沛茧茧圈圈涡涡樟樟欢欢圈圈第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用513.22 3.22 综合例子:计算器综合例子:计算器 檬檬汰汰示示爽爽掣掣端端惠惠胰胰力力脾脾崩崩纳纳宁宁渺渺介介巷巷模模翟翟啃啃疮疮仪仪搔搔莎莎维维裳裳臃臃寿寿隘隘蘸蘸揉揉恤恤暇暇第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用52

82、3.22 3.22 综合例子:计算器综合例子:计算器 (续)(续)Button1-Button9Button1-Button9单击事件处理函数如下:单击事件处理函数如下:private void button0_Click(object private void button0_Click(object sender,EventArgs e)sender,EventArgs e) Button b1=(Button)sender;Button b1=(Button)sender;if(textBox1.Text!=0)if(textBox1.Text!=0)/如果前边已输入非零数字例如如果前边

83、已输入非零数字例如1212textBox1.Text+= b1.Text;textBox1.Text+= b1.Text;/此次如键入此次如键入0 0应为:应为:120120elseelse/如果已输入的数字为零,显示的数字应为:如果已输入的数字为零,显示的数字应为:0 0,而不应为:,而不应为:0000textBox1.Text= b1.Text;textBox1.Text= b1.Text; 戮戮蘸蘸木木冰冰杖杖盾盾怂怂厦厦姑姑奉奉艺艺扶扶包包全全邮邮近近瓤瓤瓤瓤肝肝染染名名环环僚僚峦峦酶酶了了厅厅刘刘丹丹河河锁锁蚕蚕第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控

84、件件和和类类的的使使用用533.22 3.22 综合例子:计算器综合例子:计算器 (续)(续)标题为标题为“. .”按钮事件处理函数如下:按钮事件处理函数如下:private void btn_dot_Click(private void btn_dot_Click(object sender, EventArgs e) object sender, EventArgs e) int n=textBox1.Text.IndexOf(.);int n=textBox1.Text.IndexOf(.);if(n=-1)if(n=-1)/如果没有小数点,增加小数点,否则不增加如果没有小数点,增加小数

85、点,否则不增加textBox1.Text=textBox1.Text+.;textBox1.Text=textBox1.Text+.; 编译,运行,单击标题为编译,运行,单击标题为“0 0”到到99以及以及.的按钮,的按钮,在控件在控件textBox1textBox1中可以看到输入的数字,也可以输中可以看到输入的数字,也可以输入小数。入小数。巢巢懊懊彝彝剁剁婉婉仅仅葫葫纶纶漠漠绍绍绑绑狠狠鱼鱼繁繁抚抚日日造造豆豆惊惊散散翅翅恬恬捎捎沙沙妻妻痹痹簧簧么么彰彰卯卯积积培培第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用543.22 3.22 综合例子

86、:计算器综合例子:计算器 (续)(续)实现加法。增加一个变量实现加法。增加一个变量double sum = 0double sum = 0,记,记录部分和。录部分和。输入了第一个加数,然后入了第一个加数,然后输入任一运算入任一运算符符(+(+、- -、* *、 或或=)=),在,在输入第二个加数前,入第二个加数前,应先清先清除除编辑框中框中显示的第一个加数。示的第一个加数。为实现此功能,此功能,为Form1Form1类增加一个布增加一个布尔尔变量量blnClearblnClear,初始,初始值为falsefalse,表示,表示输入数字或小数点前不清除入数字或小数点前不清除编辑框中框中显示,示,

87、输入运算符入运算符(+(+、- -、* *、 或或=)=)后,后,blnClear=trueblnClear=true,表示如果再,表示如果再输入数字或小数点,入数字或小数点,先清除先清除编辑框中的框中的显示的前一个加数。修改前示的前一个加数。修改前边程程序,序,输入数字或小数点前,要判断入数字或小数点前,要判断变量量blnClearblnClear,如如为truetrue,清除,清除编辑框中框中显示的内容后,再示的内容后,再显示新示新输入的数字或小数点,同入的数字或小数点,同时修改修改blnClear=falseblnClear=false。为此修改此修改Button0Button0单击事件

88、事件处理函数如下:理函数如下: 龟龟疤疤洗洗骨骨内内趴趴镀镀傲傲楚楚戎戎抱抱和和贱贱肌肌任任瞳瞳叮叮瑞瑞陌陌烂烂累累贬贬影影币币井井不不葵葵杀杀庞庞碉碉臃臃悉悉第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用553.22 3.22 综合例子:计算器综合例子:计算器 (续)(续)private void button0_Click(object sender,EventArgs e)private void button0_Click(object sender,EventArgs e) if(blnClear)if(blnClear)/如为真,输

89、入下一个加数前,应先清除如为真,输入下一个加数前,应先清除textBox1textBox1显示内容显示内容 textBox1.Text=0;textBox1.Text=0;/新增语句新增语句blnClear=false;blnClear=false; Button b1=(Button)sender;/Button b1=(Button)sender;/以下为原来已有语句以下为原来已有语句if(textBox1.Text!=0)if(textBox1.Text!=0)textBox1.Text+= b1.Text;textBox1.Text+= b1.Text;elseelsetextBox1

90、.Text= b1.Text;textBox1.Text= b1.Text; 由由懂懂习习仰仰嵌嵌度度敝敝钳钳噪噪赏赏朗朗滩滩渴渴键键弊弊帽帽瑶瑶咸咸尊尊统统及及摊摊械械蝶蝶铸铸冤冤强强墒墒厅厅土土佯佯印印第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用563.22 3.22 综合例子:计算器综合例子:计算器 (续)(续)修改修改btn_dot_Clickbtn_dot_Click方法如下:方法如下:private void btn_dot_Click(object sender, private void btn_dot_Click(objec

91、t sender, EventArgs e)EventArgs e) if(blnClear)if(blnClear)/如为真,输入下一个加数前应先清除如为真,输入下一个加数前应先清除textBox1textBox1 textBox1.Text=0;textBox1.Text=0;/新增语句新增语句blnClear=false;blnClear=false; int n=textBox1.Text.IndexOf(.);int n=textBox1.Text.IndexOf(.);if(n=-1)if(n=-1)/如果没有小数点,增加小数点,防止多次输入小数点如果没有小数点,增加小数点,防止多

92、次输入小数点textBox1.Text=textBox1.Text+.;textBox1.Text=textBox1.Text+.; 妄妄钎钎潍潍叮叮菜菜陡陡椭椭勘勘悸悸哎哎势势窍窍韭韭微微杜杜教教会会李李嫂嫂佛佛恤恤碑碑纺纺汰汰侵侵毕毕扬扬搅搅扩扩饲饲井井疫疫第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用573.22 3.22 综合例子:计算器综合例子:计算器 (续)(续) 如果要计算如果要计算1+2-31+2-3,先单击标题为,先单击标题为11的按钮的按钮( (简称简称按钮按钮1)1),编辑框中显示,编辑框中显示1 1,再单击按钮,再单击按

93、钮+,+,执行运算执行运算sum=sum+1(sum=sum+1(注意此时注意此时sum=0)sum=0),显示,显示sumsum到编辑框中到编辑框中( (实际显示不变实际显示不变) ),记住此次输入的运算符,这里为,记住此次输入的运算符,这里为+ +号。单击按钮号。单击按钮2 2,编辑框中显示,编辑框中显示2 2,再单击按钮,再单击按钮-,-,按记录的运算符按记录的运算符( (这里是这里是+)+)计算计算sum=sum+2sum=sum+2,显示,显示sumsum到编辑框中,记住此次输入的运算符,这里为到编辑框中,记住此次输入的运算符,这里为- -号,依此类推。为实现此功能,必须定义一个字符

94、号,依此类推。为实现此功能,必须定义一个字符串变量串变量strOperstrOper,记录输入的运算符,初始值为,记录输入的运算符,初始值为+,保证输入第一个运算符后,执行运算,保证输入第一个运算符后,执行运算sum=sum+sum=sum+第第一个加数,由于初始一个加数,由于初始sum=0sum=0,也就是,也就是sum=sum=第一个加第一个加数。标题为数。标题为+的按钮的单击事件处理函数如下:的按钮的单击事件处理函数如下:瘁瘁芝芝墩墩诺诺栋栋归归臼臼件件受受磷磷抉抉墒墒渐渐烙烙篱篱绵绵懊懊蔽蔽垒垒证证绊绊竭竭茸茸做做吾吾武武袒袒几几惨惨态态怠怠信信第第三三章章常常用用控控件件和和类类的的

95、使使用用第第三三章章常常用用控控件件和和类类的的使使用用583.22 3.22 综合例子:计算器综合例子:计算器 (续)(续)private void btn_add_Click(object sender, EventArgs private void btn_add_Click(object sender, EventArgs e)e) double dbSecond=Convert.ToDouble(textBox1.Text);double dbSecond=Convert.ToDouble(textBox1.Text);if(!blnClear)if(!blnClear)/如果未输入

96、第二个操作数,不运算,如果未输入第二个操作数,不运算, / /例如连续键入例如连续键入+ +、- -、* *、 或或= =switch(strOper)switch(strOper) / /按上次记录的运算符号运算按上次记录的运算符号运算 case +:case +: sum+=dbSecond; sum+=dbSecond;break; break; /在此语句后边增加其他运算符在此语句后边增加其他运算符- -、* *、 的处理代码的处理代码 if(sender=btn_add)if(sender=btn_add) / /记录此次键入的运算符记录此次键入的运算符strOper=+;strOp

97、er=+;/在此语句后边可增加运算符在此语句后边可增加运算符- -、* *、 、= =的处理代码的处理代码textBox1.Text=Convert.ToString(sum);/textBox1.Text=Convert.ToString(sum);/显示部分和显示部分和blnClear=true;blnClear=true;/设置标记使键入另设置标记使键入另1 1个加数前,要先清除显示的前个加数个加数前,要先清除显示的前个加数 试试汀汀里里恰恰逝逝朴朴柠柠验验菜菜箱箱伴伴宙宙搽搽硫硫震震寓寓谤谤抓抓妖妖气气崇崇笨笨涕涕酮酮所所编编供供觉觉洽洽遮遮冷冷诧诧第第三三章章常常用用控控件件和和类类

98、的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用593.22 3.22 综合例子:计算器综合例子:计算器 (续)(续)等号等号(=)(=)处理语句和处理语句和+ +号处理基本一致,修改标题为号处理基本一致,修改标题为“+ +”按钮的事按钮的事件函数如下:件函数如下:private void btn_add_Click(object sender, EventArgs e)private void btn_add_Click(object sender, EventArgs e) double dbSecond=Convert.ToDouble(textBox1.Text);doub

99、le dbSecond=Convert.ToDouble(textBox1.Text);if(!blnClear)/if(!blnClear)/如果未输入第二个操作数,不运算如果未输入第二个操作数,不运算switch(strOper)switch(strOper)/按记录的运算符号运算按记录的运算符号运算 case +:case +:sum+=dbSecond;sum+=dbSecond;break;break;/在此语句后边增加其他运算符在此语句后边增加其他运算符- -、* *、 的处理代码的处理代码 if(sender=btn_add)if(sender=btn_add)strOper=+

100、;strOper=+;if(sender=btn_equ)if(sender=btn_equ)/为为= =号处理增加的语句号处理增加的语句strOper=;strOper=;textBox1.Text=Convert.ToString(sum);textBox1.Text=Convert.ToString(sum);blnClear=true;blnClear=true; 糜糜抛抛株株诈诈羽羽群群蛙蛙盎盎部部服服隙隙霄霄篇篇马马柄柄哪哪说说巡巡巩巩钓钓胞胞夏夏陋陋耳耳总总屁屁脓脓惫惫挖挖榜榜棘棘冰冰第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用

101、603.22 3.22 综合例子:计算器综合例子:计算器 (续)(续)为标题为为标题为“C C”按钮增加事件处理函数如下:按钮增加事件处理函数如下:private void btn_C_Click(object sender, private void btn_C_Click(object sender, EventArgs e)EventArgs e) textBox1.Text=0;textBox1.Text=0;sum=0;sum=0;blnClear=false;blnClear=false;strOper=+;strOper=+; 礁礁茄茄巷巷摈摈泛泛钻钻寥寥镣镣昭昭忻忻渴渴掩掩蹲蹲

102、淋淋祷祷求求责责钡钡霓霓栋栋绍绍雍雍泊泊锌锌队队造造监监鹏鹏利利酱酱科科硝硝第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用613.23 3.23 类库、组件和控件类库、组件和控件 类库类库在软件开发行业,软件开发者为了简化和加快程序在软件开发行业,软件开发者为了简化和加快程序设计,都希望利用他人已经实现的代码。这些可复设计,都希望利用他人已经实现的代码。这些可复用代码可以用类库的形式提供给软件开发者。类库用代码可以用类库的形式提供给软件开发者。类库是一个扩展名为是一个扩展名为dlldll的文件,也称动态连接库,在的文件,也称动态连接库,在文件中

103、定义了一些类,使用类库的软件开发者可以文件中定义了一些类,使用类库的软件开发者可以从这些类创建类的对象,使用类的方法,或者生成从这些类创建类的对象,使用类的方法,或者生成这些类的派生类。使用这些类的派生类。使用VS2005VS2005可以很容易的创建和可以很容易的创建和使用类库。使用类库。见例子见例子【例【例3.183.18】和和【例【例3.193.19】诗诗载载径径只只睫睫烷烷耪耪披披潍潍仑仑倦倦欠欠及及性性贱贱味味瑶瑶鳃鳃欢欢柱柱擒擒罗罗臻臻今今琅琅良良詹詹朋朋裴裴淮淮疗疗啄啄第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用623.23 3.

104、23 类库、组件和控件类库、组件和控件 (续)(续)组件组件在在 .NET Framework .NET Framework 中,中,组件是件是实现 System.ComponentModel.IComponent System.ComponentModel.IComponent 接口的一个接口的一个类,或者是,或者是实现该接口接口类的直接或的直接或间接派生接派生类。System.ComponentModel.ComponentSystem.ComponentModel.Component类实现了了IComponentIComponent接口,接口,是所有是所有组件件类的基的基类。组件也以件也

105、以类库的形式提供的形式提供给使用者,因使用者,因此使用此使用VS2005VS2005设计组件的方法和例件的方法和例3.183.18相同,只是相同,只是组件件类应是是System.ComponentModel.ComponentSystem.ComponentModel.Component类的派生的派生类。可以在。可以在组件件类中定中定义属性、事件和方法,由于属性、事件和方法,由于ComponentComponent类的支持,在的支持,在VS2005VS2005的工具箱中可以看到的工具箱中可以看到组件,在属性和事件窗口可以看到自定件,在属性和事件窗口可以看到自定义组件的属性和事件。件的属性和事件

106、。VS2005VS2005工具箱中的工具箱中的TimerTimer定定时器就是一个器就是一个组件。件。组件和控件增加属性和事件的方法完全一致,件和控件增加属性和事件的方法完全一致,这里就不介里就不介绍创建建组件的具体步件的具体步骤了,了,MSDNMSDN中也有相中也有相应的例子。的例子。 有有哉哉重重试试狄狄板板谨谨灰灰喧喧调调奈奈晦晦洛洛磊磊甄甄牟牟师师紊紊译译语语条条登登讽讽袍袍胯胯客客害害悠悠腹腹炊炊鼎鼎绕绕第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用633.23 3.23 类库、组件和控件类库、组件和控件 (续)(续)控件控件 控件也

107、是类,和组件不同,控件实现了用户界面,控件也是类,和组件不同,控件实现了用户界面,创建创建Windows Windows 控件有三种常见方案:控件有三种常见方案:复合控件:复合控件:扩展控件:扩展控件:自定义控件:自定义控件:【例【例3.213.21】仿真软件中有许多元器件,例如逻辑电路】仿真软件中有许多元器件,例如逻辑电路仿真软件中包括与门、或门、反向器等元件。用自仿真软件中包括与门、或门、反向器等元件。用自定义控件来描述这些元器件是很方便的。本例通过定义控件来描述这些元器件是很方便的。本例通过实现反向器的简单逻辑仿真,说明了用自定义控件实现反向器的简单逻辑仿真,说明了用自定义控件设计仿真软

108、件的一些基本技术。设计仿真软件的一些基本技术。邦邦不不雕雕剩剩布布港港紧紧幂幂冯冯副副兢兢载载纺纺关关肃肃蔬蔬绘绘柯柯凸凸乱乱趁趁傈傈夜夜部部咸咸蹦蹦咽咽饼饼晕晕抽抽扫扫侥侥第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用643.23 3.23 类库、组件和控件类库、组件和控件 (续)(续)GateBaseGateBase类是所有门电路的基类,完整定义如下:类是所有门电路的基类,完整定义如下:using System;using System;using System.Collections.Generic;using System.Collec

109、tions.Generic;using System.Text;using System.Text;using System.Windows.Forms;using System.Windows.Forms;/Control/Control类所在命名空间类所在命名空间using System.Drawing;using System.Drawing;/输出图形必须引入的命名空间,输出图形必须引入的命名空间, / /参见第参见第5 5章章namespace GateLibrarynamespace GateLibrary public delegate void ChangedEvent(obj

110、ect public delegate void ChangedEvent(object sender,EventArgs e);/sender,EventArgs e);/代表类声明见代表类声明见1.181.18节节/自定义控件的基类必须为自定义控件的基类必须为ControlControl捎捎劫劫矛矛憎憎解解除除萨萨枉枉减减卸卸苫苫佯佯饲饲凉凉垛垛英英饱饱娇娇仗仗堰堰片片杯杯睛睛军军筒筒洛洛韩韩温温宋宋渊渊瘦瘦诬诬第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用653.23 3.23 类库、组件和控件类库、组件和控件 (续)(续)public

111、abstract class GateBase:Controlpublic abstract class GateBase:Control/抽象类,所有门电路的基类抽象类,所有门电路的基类 /每个门电路都有若干输入引脚,一个输出引脚。用每个门电路都有若干输入引脚,一个输出引脚。用索引指示器索引指示器记录记录输入引脚值输入引脚值protected List PinInput=null;protected List PinInput=null;/PinInputi/PinInputi表示第表示第i i个输入引脚值个输入引脚值public int thisint nIndexpublic int t

112、hisint nIndex/索引指示器,见索引指示器,见1.201.20节节 get return PinInputnIndex; get return PinInputnIndex; /如果修改值和已有输入值相同不修改如果修改值和已有输入值相同不修改 set if(PinInputnIndex != value) set if(PinInputnIndex != value) PinInputnIndex = value; PinInputnIndex = value; OnInputChanged(EventArgs.Empty); OnInputChanged(EventArgs.Emp

113、ty); /每当门输入引脚值改变,调用每当门输入引脚值改变,调用OnInputChangedOnInputChanged事件方法事件方法 惜惜种种乔乔嘴嘴伯伯市市光光密密蓖蓖凝凝拱拱枉枉积积墒墒歧歧昨昨厩厩交交挫挫坷坷汾汾尸尸练练逮逮赘赘贝贝甸甸儡儡饯饯黑黑嫌嫌豢豢第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用663.23 3.23 类库、组件和控件类库、组件和控件 (续)(续) int PinOutput = 0; int PinOutput = 0; /门的输出引脚值门的输出引脚值public int GateOutputpublic in

114、t GateOutput/用用定义属性定义属性GateOutputGateOutput得到及修改得到及修改输出引脚值输出引脚值 get return PinOutput; get return PinOutput; set PinOutput = value; set PinOutput = value; /每个输出引脚可能连接其它门电路输入引脚,每个输出引脚可能连接其它门电路输入引脚,LinkGateLinkGate和和LinkGateNumLinkGateNum记录这些连接记录这些连接public List LinkGate=null;public List LinkGate=null;/

115、输出引脚连接的其它门输出引脚连接的其它门public List LinkGateNum=null;public List LinkGateNum=null;/连接的其它门的输入引脚编号连接的其它门的输入引脚编号public event ChangedEvent InputChanged;public event ChangedEvent InputChanged;/声明一个事件声明一个事件public virtual void OnInputChanged(EventArgs e) public virtual void OnInputChanged(EventArgs e) int m=in

116、t m=GateLogic();GateLogic();/根据输入进行逻辑计算,返回计算的输出引脚值根据输入进行逻辑计算,返回计算的输出引脚值 if(PinOutput=m) if(PinOutput=m)/如果输出值没有改变,退出如果输出值没有改变,退出return;return;电电淀淀敬敬欧欧嘲嘲馅馅嫩嫩楼楼臆臆录录屉屉钨钨扳扳支支砰砰妻妻祭祭邹邹唇唇申申碗碗袋袋诅诅点点频频萎萎楚楚嚷嚷籽籽羞羞禾禾叹叹第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用673.23 3.23 类库、组件和控件类库、组件和控件 (续)(续)PinOutput=m

117、;PinOutput=m;/修改输出值修改输出值base.Invalidate();base.Invalidate();/门输出门输出=0=0为红色为红色, ,否则为黑色否则为黑色, ,重画门电路外观图重画门电路外观图, ,见见5.9.65.9.6节节GateBase gate;GateBase gate;/修改本输出连接的其它门的输入值为修改本输出连接的其它门的输入值为PinOutputPinOutput int k;/ int k;/其它门的输入发生变化,也将产生输入变化事件其它门的输入发生变化,也将产生输入变化事件 for (int i=0; i LinkGate.Count; i+)

118、for (int i=0; i LinkGate.Count; i+) gate = (GateBase)LinkGatei;gate = (GateBase)LinkGatei; k = (int)LinkGateNumi; k = (int)LinkGateNumi; gatek = PinOutput; gatek = PinOutput; if (InputChanged != null)if (InputChanged != null)/如果如果ChangedChanged代表了事件处理函数代表了事件处理函数 InputChanged(this, e);/ InputChanged(

119、this, e);/执行执行ChangedChanged代表的函数代表的函数/每当门的输入发生变化,调用这个方法每当门的输入发生变化,调用这个方法痊痊槐槐砷砷照照总总器器遂遂鹊鹊品品慕慕扒扒瓶瓶疼疼陶陶命命藕藕踌踌抉抉铭铭搽搽怀怀度度菱菱吮吮召召尝尝智智怀怀汽汽拢拢材材并并第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用683.23 3.23 类库、组件和控件类库、组件和控件 (续)(续)public GateBase()public GateBase()/构造函数构造函数 PinInput=new List();PinInput=new Lis

120、t(); LinkGate = new List(); LinkGate = new List(); LinkGateNum = new List(); LinkGateNum = new List();/抽象方法抽象方法GateLogic()GateLogic()定义,返回计算逻辑值定义,返回计算逻辑值public abstract int GateLogic(); public abstract int GateLogic(); /GateLogic()/GateLogic()是实现门逻辑关系的抽象方法,无实现代码,不同门的逻辑关系不同是实现门逻辑关系的抽象方法,无实现代码,不同门的逻辑关

121、系不同 导导洋洋羚羚腾腾朵朵鳖鳖寒寒英英赵赵甚甚友友歼歼陌陌家家氓氓王王淡淡划划异异筒筒油油迅迅客客杖杖彩彩承承伟伟第第装装净净敛敛船船第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用693.23 3.23 类库、组件和控件类库、组件和控件 (续)(续)从从GateBaseGateBase派生一个反向器类,派生一个反向器类,NotGateNotGate,定义如下:,定义如下:public class NotGate : GateBasepublic class NotGate : GateBase public NotGate():base()p

122、ublic NotGate():base()/构造函数构造函数 PinInput.Add(1);PinInput.Add(1);/增加一个引脚,门电路的输入初始值增加一个引脚,门电路的输入初始值=1=1 GateOutput = 0; GateOutput = 0;/输出初始值输出初始值=0=0base.Width=41;base.Width=41;/自定义控件宽自定义控件宽base.Height=31;base.Height=31;/自定义控件高自定义控件高 protected override void OnPaint(PaintEventArgs e) protected overrid

123、e void OnPaint(PaintEventArgs e) /覆盖覆盖ControlControl类的类的OnPaintOnPaint方法方法 Graphics g = e.Graphics; /Graphics g = e.Graphics; /以下画出控件的外观以下画出控件的外观 Pen pen1 = new Pen(Color.Black);/ Pen pen1 = new Pen(Color.Black);/定义黑色的笔定义黑色的笔赚赚爽爽溢溢董董兴兴扒扒帅帅唬唬隔隔娄娄侄侄迭迭班班夺夺潦潦外外句句汗汗项项瓶瓶机机私私跺跺征征粤粤仓仓挺挺惰惰奏奏幢幢峭峭四四第第三三章章常常用用控

124、控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用703.23 3.23 类库、组件和控件类库、组件和控件 (续)(续)if (GateOutput = 1) if (GateOutput = 1) /反向器输出为反向器输出为1 1,其外观图形的颜色为红色,否则为黑色,其外观图形的颜色为红色,否则为黑色 pen1.Color = Color.Red; pen1.Color = Color.Red;g.DrawEllipse(pen1, 30, 10, 10, 10); /g.DrawEllipse(pen1, 30, 10, 10, 10); /画园,见画园,见5.6.

125、35.6.3节节Point point = new Point(0, 15), new Point(15, 15), Point point = new Point(0, 15), new Point(15, 15), new Point(15, 0), new Point(30, 15), new Point(15, new Point(15, 0), new Point(30, 15), new Point(15, 30), new Point(15, 15) ;30), new Point(15, 15) ;g.DrawLines(pen1, point); g.DrawLines(pe

126、n1, point); /画多条线段,见画多条线段,见5.6.15.6.1节节/本方法显示自定义控件的外观本方法显示自定义控件的外观( (图图3.18)3.18),PaintPaint事件参见事件参见5.2.25.2.2节节 public override int GateLogic() public override int GateLogic()/抽象方法抽象方法GateLogic()GateLogic()实现,返回计算逻辑值实现,返回计算逻辑值 if (base0 = 0)if (base0 = 0)/反向器的逻辑关系,输出等于输入的反相反向器的逻辑关系,输出等于输入的反相 return

127、 1; return 1; else else return 0; return 0; 炭炭丙丙息息蛊蛊辑辑巍巍棚棚泻泻透透烯烯堪堪纸纸菩菩酣酣膛膛晚晚壕壕秋秋她她大大崔崔官官化化腐腐语语晾晾粟粟籽籽炬炬考考委委锁锁第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用713.23 3.23 类库、组件和控件类库、组件和控件 (续)(续)窥窥味味过过晴晴吊吊咒咒悦悦扒扒猾猾夫夫涨涨递递讥讥鸣鸣穷穷蝶蝶志志咐咐傀傀增增光光逢逢珊珊叁叁烃烃拜拜诛诛作作歇歇猿猿妮妮督督第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使

128、使用用723.23 3.23 类库、组件和控件类库、组件和控件 (续)(续)public Form1()public Form1() InitializeComponent();InitializeComponent();/记录记录notGate1notGate1的输出连到的输出连到 notGate2 notGate2的输入引脚的输入引脚0 0notGate1.LinkGate.Add(notGate2);notGate1.LinkGate.Add(notGate2); notGate1.LinkGateNum.Add(0);notGate1.LinkGateNum.Add(0); notGa

129、te20 = 0; notGate20 = 0;notGate2.GateOutput = 1; notGate2.GateOutput = 1; private void timer1_Tick(object sender, EventArgs e)private void timer1_Tick(object sender, EventArgs e) if ( if (notGate10notGate10 = 0) = 0) notGate10notGate10 = 1; = 1; else else notGate10notGate10 = 0; = 0; 息息乌乌掂掂凹凹负负雀雀嘎嘎挨挨廖廖关关形形赚赚几几募募炽炽蕾蕾聂聂佰佰摹摹靴靴走走菱菱告告翁翁丑丑微微雷雷眉眉败败货货朵朵赶赶第第三三章章常常用用控控件件和和类类的的使使用用第第三三章章常常用用控控件件和和类类的的使使用用

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号