版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程地位综合基础课程SQLServerXMLAjax[Javascript&XML]ASP.NETOracleRSSComputerBaseHTML&JavaScriptOOP\JavaCDatabaseBaseJSP/ServletEJB/WebServiceC#Struts/JSFTesting/SQALinuxWinForms第一章、Windows编程基础本章主要内容介绍
1.1windows和窗体
1.2VisualStutio.netIDE简介
1.3事件处理CONTENT1.1Windows和窗体本章学习目标:理解Windows窗体使用基本控件如标签、文本、按钮、列表框和组合框掌握窗体的常用属性和方法GUI界面控件1.1Windows和窗体各种控件属性放置控件的区域1.1Windows和窗体WinForms应用程序可能存在多个窗体,用于获取用户输入的数据和向用户显示数据System.Windows.Forms
简单而强大改善了接口和基类IntelliSense
新的管理数据提供程序
安全
灵活的控件
通晓数据
向导1.1Windows和窗体1.1.2创建WinForms应用程序“开始”
“程序”
“MicrosoftVisualStudio.NET2005”
“MicrosoftVisualStudio.NET2005”创建WinForms应用程序6-2设计窗口1.1.2创建WinForms应用程序usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;namespaceSampleProject{ ///<summary> ///Form1的摘要说明。
///</summary> publicclassForm1:System.Windows.Forms.Form { ///<summary> ///必需的设计器变量. ///</summary>提供了大量绘图工具的访问权限基础核心命名空间ArrayList、BitArray、Hashtable、Stack、StringCollection和StringTable类大量窗体和控件从
System.Windows.Forms.Form派生VisualStudio.NET生成的代码1.1.2创建WinForms应用程序privateSystem.ComponentModel.Containercomponents=null;publicForm1(){ // //Windows窗体设计器支持所必需的
// InitializeComponent(); // //TODO:在InitializeComponent调用之后 添加任何构造函数代码
//}
构造函数调用InitializeComponent()方法//下面代码见:Form1.Designer.cs文件privatevoidInitializeComponent(){ponents=newSystem.ComponentModel.Container();this.Size=newSystem.Drawing.Size(300,300);this.Text="Form1";}项目的容器创建WinForms应用程序///<summary>///清理所有正在使用的资源。【下面代码:Form1.Designer.cs】///</summary>protectedoverridevoidDispose(booldisposing){ if(disposing) { if(components!=null)
{ components.Dispose(); } } base.Dispose(disposing);}释放系统资源1.1.2创建WinForms应用程序//下面代码见:program.cs文件[STAThread]staticvoidMain(){ Application.Run(newForm1());}程序的主入口点1.1.3WinForms中的常用控件可视化界面组件统称为控件System.Windows.Forms.ControlSystem.Windows.FormsControlButtonBaseButtonCheckBoxLabelListControlComboBoxListBoxTextBoxBaseTextBoxRadioButton1.1.3WinForms中的常用控件
标签按钮组合框列表框文本框标签属性说明Text该属性用于设置或获取与该控件关联的文本方法说明Hide隐藏控件,调用该方法时,即使
Visible属性设置为True,控件也不可见Show相当于将控件的Visible属性设置为True并显示控件事件说明
Click用户单击控件时将发生该事件1.1.3WinForms中的常用控件
标签控件按钮控件文本框控件列表控件组合框控件privatevoidlinkLabel1_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse){linkLabel1.LinkVisited=true;Form2newform=newForm2();newform.Show();this.Hide();}privatevoidlinkLabel2_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse){//label2.Visible=true;label2.Show();}privatevoidlinkLabel3_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse){label2.Visible=false;label2.Hide();}
案例:窗口的打开和关闭文本框属性说明MaxLength可在文本框中输入的最大字符数Multiline表示是否可在文本框中输入多行文本Passwordchar机密和敏感数据,密码输入字符ReadOnly文本框中的文本为只读Text检索在控件中输入的文本方法说明Clear删除现有的所有文本事件说明KeyPress用户按一个键结束时将发生该事件1.1.3WinForms中的常用控件
按钮属性说明Enabled确定是否可以启用或禁用该控件方法说明PerformClickButton控件的Click事件
事件说明Click单击按钮时将触发该事件1.1.3WinForms中的常用控件
案例:用户登录设计privatevoidbutton2_Click(objectsender,EventArgse){clear();}privatevoidbutton1_Click(objectsender,EventArgse){if(textBox1.Text==string.Empty||textBox2.Text==string.Empty){MessageBox.Show("信息禁止为空!","登录提示");clear();return;}if(!textBox1.Text.Equals("admin")||!textBox2.Text.Equals("admin")){MessageBox.Show("用户名称或密码为空!","登录提示");clear();return;}else{MessageBox.Show("欢迎您登录本系统!","消息提示");clear();}}publicvoidclear(){textBox1.Clear();textBox2.Clear();textBox2.Focus();}列表框属性ItemsSelectionMode
SelectedIndex
SelectedItemSelectedItems
Text
方法ClearSelected事件SelectedIndexChanged1.1.3WinForms中的常用控件
使用列表框(1)privatevoidForm1_Load(objectsender,EventArgse){this.listBox1.Items.Add("软件部");this.listBox1.Items.Add("硬件部");this.listBox1.Items.Add("财务部");this.listBox1.Items.Add("人事部");}privatevoidlistBox1_SelectedIndexChanged(objectsender,EventArgse){MessageBox.Show("您选择的部门是:"+listBox1.SelectedItem.ToString()+",位列第"+listBox1.SelectedIndex.ToString(),"信息提示");}使用列表框(2)privatevoidbutton1_Click(objectsender,EventArgse){listBox1.Items.Clear();listBox1.Items.Add("软件部");listBox1.Items.Add("硬件部");listBox1.Items.Add("财务部");listBox1.Items.Add("人事部");}privatevoidbutton2_Click(objectsender,EventArgse){listBox1.Items.Insert(2,"插入值");label1.Text="已经添加"+listBox1.Items.Count.ToString()+"条记录";}组合框属性说明DropDownStyleComboBox控件的样式MaxDropDownItems下拉区显示的最大项目数方法说明Select在ComboBox控件上选定指定范围的文本1.1.3WinForms中的常用控件
使用组合框privatevoidForm1_Load(objectsender,EventArgse){boBox1.Items.Add("财务部");boBox1.Items.Add("产品部");boBox1.Items.Add("销售部");boBox1.Items.Add("生产部");//默认的选择是"产品部"boBox1.SelectedIndex=1;boBox2.Items.Add("财务部");boBox2.Items.Add("产品部");boBox2.Items.Add("销售部");boBox2.Items.Add("生产部");//默认的选择是"产品部"boBox2.SelectedIndex=1;boBox3.Items.Add("财务部");boBox3.Items.Add("产品部");boBox3.Items.Add("销售部");boBox3.Items.Add("生产部");//默认的选择是"产品部"boBox3.SelectedIndex=1;}消息框窗口MessageBox.Show(“[消息文本]");消息框用于显示消息Abort,Cancel,Ignore,No,None,Ok,Retry和Yesif(MessageBox.Show(“保存文件”,“保存",MessageBoxButtons.YesNo,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1)==DialogResult.Yes){ //保存文件所用的代码
//保存后的MessageBox }1.1.3WinForms中的常用控件
消息框窗口重载方法Show(stringtext);Show(stringtext,stringcaption);Show(stringtext,stringcaption,MessageBoxButtonsbuttons);Show(stringtext,stringcaption,MessageBoxButtonsbuttons,MessageBoxIconicon);……privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("嘿,这是简单提示!","信息提示");}privatevoidbutton2_Click(objectsender,EventArgse){DialogResultresult=MessageBox.Show("嘿,这是问询提示!","问询提示",MessageBoxButtons.YesNo);if(result==DialogResult.Yes){label1.Text="您选择了YES";
}else{label1.Text="您选择了NO";}}privatevoidbutton3_Click(objectsender,EventArgse){DialogResultresult=MessageBox.Show("嘿,这是带有图标的问询提示!","问询提示",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button3,MessageBoxOptions.RightAlign);if(result==DialogResult.Yes){label1.Text="您选择了图标YES";}elseif(result==DialogResult.Cancel){label1.Text="您选择了图标取消";}elseif(result==DialogResult.No){label1.Text="您选择了图标NO";}}应用程序示例
解决方案资源管理器属性窗口工具箱应用程序示例privatevoidbtnAdd_Click(objectsender,System.EventArgse){
}privatevoidbtnAdd_Click(objectsender,System.EventArgse){ this.txtEmpName.Enabled=true; this.txtAddress.Enabled=true; this.cboDesignation.Enabled=true; this.lstCurrDeptName.Enabled=true;}privatevoidbtnCancel_Click(objectsender,System.EventArgse){ this.txtEmpName.Text=""; this.txtAddress.Text=""; this.cboDesignation.Text=“经理"; }privatevoidbtnExit_Click(objectsender,System.EventArgse){ stringstr=""; for(intctr=0;ctr<=this.lstCurrDeptName.SelectedItems.Count-1; ctr++) str+="\n"+this.lstCurrDeptName.SelectedItems[ctr].ToString(); MessageBox.Show(“选定的项目为\n"+str); Application.Exit();}应用程序示例privatevoidcboDesignation_SelectedIndexChanged (objectsender,System.EventArgse){ MessageBox.Show(“您已经选定了"+ this.cboDesignation.SelectedItem.ToString());}在退出应用程序之前,使用MessageBox.Show()显示在str变量中存储选定项的消息框图标系统按钮System.Windows.FormsControlScrollableControlContainerControlForm标题栏控件1.1.4窗体容器简介
1.1.4窗体容器简介
SDI[单文档界面]MDI[多文档界面]1.1.5窗体的属性属性StartPosition初始窗口位置CancelButton按下esc键后执行那个按钮。ControlBox确定系统是否有图标和最大最小关闭按钮。FormBorderStyle指定边框和标题栏的外观和行为。HelpButton确定窗体的标题栏上是否有帮助按钮。KeyPreview确定窗体键盘事件是否已经向窗体注册。MainMenuStrip确定键盘激活和多文档合并。ShowInTaskbar确定窗体是否出现在任务栏中。WindowState确定窗体的初始可视状态。1.1.5窗体的常用方法和事件方法Activate当窗体被激活时候发生
MdiChildActivate
当MDI子窗体被激活时候发生
事件ActivatedClosedClosingLoad示例:显示另一窗体示例:显示另一窗体[被调用的窗体类][窗体实例]=new[被调用的窗体类]();[窗体实例].Show();下面,在菜单的单击事件中写下如下的事件。privatevoidmenuItem3_Click(objectsender,EventArgse){Form2Mdichild=newForm2();Mdichild.MdiParent=this;Mdichild.Show();}当然,需要再建立两个窗体对象,form2和form3窗体示例1:在form2窗体中进行如下操作单击“发送”按钮应用程序示例首先,将form2的comboBox1下拉框填充完毕后,增加load事件privatevoidForm2_Load(objectsender,EventArgse){comboBox1.SelectedIndex=0;textBox3.Text="";textBox1.Focus();}其次,添加form2的发送信息事件publicvoidbutton1_Click(objectsender,EventArgse){if(textBox1.Text==""||textBox2.Text==""||comboBox1.Text==""){MessageBox.Show("姓名,或者邮件,或者提交,信息禁止为空!","信息提示");}else{this.Hide();
Form3childform3=newForm3(this.textBox1.Text,this.textBox2.Text,boBox1.SelectedItem.ToString(),this.textBox3.Text);childform3.Show();}}最后关闭窗体事件:privatevoidbutton2_Click(objectsender,EventArgse){this.Close();}应用程序示例对于form3窗体而言,在系统初始事件填写如下代码:publicpartialclassForm3:Form{privatestring_name;privatestring_emailId;privatestring_subject;privatestring_feedBack;publicForm3(stringvarName,stringvarEmail,stringvarSubject,stringvarFeedBack){InitializeComponent();//在private变量中存储值
this._name=varName;this._emailId=varEmail;this._subject=varSubject;this._feedBack=varFeedBack;//在列表框中放置值
listBox1.Items.Add("姓名:"+this._name);listBox1.Items.Add("邮件地址:"+this._emailId);listBox1.Items.Add("信息主题:"+this._subject);listBox1.Items.Add("反馈意见:"+this._feedBack);}privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("感谢您输入的反馈!");this.Close();}}示例2:在MDI父窗口中,子窗口如何彼此之间传递信息?代码见下示例3:如何防止重复打开子窗体啊?方法:
直接检测是否已经打开此MDI窗体
//是否已经打开了?(用循环来判断)
foreach(FormchildrenForminthis.MdiChildren)
{
//检测是不是当前子窗体名称
if(childrenForm.Name=="子窗体名称")
{
//是的话就是把他显示
childrenForm.Visible=true;
//并激活该窗体
childrenForm.Activate();
return;
}
}
//下面是打开子窗体
Form1childrenForm=newForm1();
childrenForm.MdiParent=this;
childrenForm.Show();
childrenForm.WindowState=FormWindowState.Maximized;
示例4:另一种窗体之间的传值技巧(一)
——传单个值1、先在Form2中定义一个成员变量和一个属性如下:
privatestringform2zhi=null;
publicstringForm2ChuanZhi
{
get
{
returnform2zhi;
}
}
2、再在Form3中定义一个成员变量和一个属性如下:
privatestringform3zhi=null;
publicstringForm3ChuanZhi
{
set
{
form3zhi=value;
}
get
{
returnform3zhi;
}
}
3、双击btn_ChuanZhi在这个事件中写入以下代码(主要是显示Form3窗体和将Form2中的值传过去):
Form3form3=newForm3();
form3.Form3ChuanZhi=form2zhi;//将值传过去
form3.S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年宿州九中教育集团(宿马南校区) 教师招聘备考题库含答案详解(考试直接用)
- 2026北京联合大学招聘45人备考题库及答案详解(名校卷)
- 2026河北保定交通发展集团有限公司招聘27人备考题库及答案详解【易错题】
- 2026甘肃阿阳农商开发有限公司招聘备考题库附参考答案详解(巩固)
- 2026广东江门开平市侨城产业投资集团有限公司招聘备考题库及参考答案详解(综合卷)
- 2026湖北武汉市三级医院招聘14人备考题库带答案详解(综合题)
- 2025-2030智能安防设备制造业供需技术分析投资主导规划分析研究报告
- 2025-2030智能安全技术行业市场供需细分分析及风险防控规划分析研究报告
- 2025-2030智能厨师行业市场分析及投资价值研究报告
- 物流公司货物安保制度
- 2026年常州市戚墅堰区事业单位招聘笔试参考试题及答案解析
- (2025年)(新版)低压电工证职业技能考试题库(含答案)
- GB/T 47059-2026森林草原火灾成因和损失调查评估规程
- 2025年AASM指南:成人OSA住院评估与管理
- 规范参股公司管理制度
- 2025人教版三年级数学上册 第六单元 分数的初步认识 单元分层作业
- 止水钢板施工人员配置
- 无人吊装施工方案(3篇)
- 2026年新疆生产建设兵团兴新职业技术学院单招职业技能测试题库及答案详解一套
- 八上12短文二篇《记承天寺夜游》公开课一等奖创新教学设计
- 会计伦理规范与法规体系的协同机制
评论
0/150
提交评论