实验1:WinForm程序设计
winform教程

winform教程WinForm(Windows Forms)是微软基于.NET Framework开发的一种用户界面设计工具。
它使用了传统的窗体、标签、按钮等控件来创建GUI界面,是使用C#或语言开发桌面应用程序的一种方式。
WinForm教程1. 创建新的WinForm应用程序项目打开Visual Studio,在菜单栏中选择“文件”->“新建”->“项目”,选择“Visual C#”或“Visual Basic”下的“Windows”或“Windows经典桌面”类别,在右侧选择“Windows Forms应用程序”。
输入项目名称,选择存储路径,点击“确定”按钮创建新的WinForm应用程序项目。
2. 设计界面在Visual Studio的设计器中,可以通过拖拽控件来设计界面。
常用的控件包括标签(Label)、文本框(TextBox)、按钮(Button)、列表框(ListBox)等。
选择相应的控件,在窗体上拖拽并调整位置和大小。
可以使用属性窗口来设置控件的属性,例如文本、字体、大小等。
3. 添加事件处理程序在WinForm应用程序中,控件的各种操作通常需要绑定相应的事件处理程序。
例如,当按钮被点击时,需要执行相应的代码。
在设计器中,选择要添加事件处理程序的控件,在属性窗口的“事件”标签页中选择相应的事件,双击后会自动创建事件处理程序并打开代码编辑器。
4. 编写业务逻辑通过代码编辑器,可以编写业务逻辑代码。
例如,在按钮的点击事件处理程序中,可以编写代码来实现具体的功能,如弹出消息框、读取文本框的内容等。
通过使用.NET Framework提供的类库,可以实现各种功能,如数据访问、文件操作、网络通信等。
5. 调试和运行应用程序在编写完业务逻辑代码后,可以通过单击“开始调试”按钮或按下F5键来调试和运行应用程序。
在调试过程中,可以使用调试工具来检查代码执行的情况,并进行逐行调试。
6. 发布应用程序当应用程序开发完成后,可以将其发布为独立的可执行文件。
C_Winform程序设计1Windows窗体介绍

创建窗体 为窗体添加控件 创建继承窗体 组织窗体上的控件 窗体的用途:自定义窗口 窗体的用途:创建多文档界面应用程序
Windows 窗体和 Web 窗体
创建窗体 设置窗体属性 窗体生命周期 处理窗体事件 Windows 窗体设计器生成的代码
特点
部署 图形
平台 编程模型 安全性
在其代码访问安全性实现中使用 通过验证请求者的凭据, 粒度权限,以保护计算机资源和 按URL控制获得访问Web应用 敏感信息 程序资源的授权
创建一个新的项目的同 时也创建了一个窗体
创建一个新窗体
1.
在解决方案资源管理 器中右键点击 “项 目”
单击“添加” 单击“添加Windows 窗体”
Windows窗体
可不必改注册表运行 GDI+
Web窗体
不需要下载和安装 交互或动态图形的更新需 要往返于服务器
响应
为需要交互的应用程序提供最快 可以利用浏览器的动态 的响应速度 HTML(DHTML)功能来创建丰 富的用户界面(UI)
要求在客户计算机上运行 .NET Framework 基于客户端Win32消息模式 只需浏览器 通过HTTP调用应用程序组 件
SDI
MDI
只有一个文档是可见的 打开一个文档之前,你必须关 闭另一个
同时显示多个文档 每个文档显示在它自己的窗口 中
• 创建一个父窗体
– 创建一个新项目 – 设置IsMdiContainer属性为True – 添加一个菜单项,来触发子窗体
• 创建一个子窗体
– 向项目添加一个新的窗体
• 从父窗体调用子窗体
2. 3.
窗体名:项目中窗体的名称
Windows窗体程序的开发实验报告

精通C#与.NET4.0数据库开发实验报告实验题目:Windows窗体程序的开发专业计算机科学与技术学生XX班级学号教师指导单位日期一、实验目的1.学会在Visual Studio 2021中创立和运行窗体程序。
2.掌握Windows窗体的根本操作。
3.学会使用常用的Windows控件。
4.学会使用菜单和工具栏以及通用对话框。
二、实验环境.NET框架开发环境Visual Studio 2021三、实验内容例5-1、2:源代码:publicpartialclass Form1 : Form{public Form1( ){Initializeponent( );}privatevoid AddInputToLog(string input){this.tbLog.AppendText("\r\n" + input);this.tbLog.ScrollToCaret( );}privatevoid btnSubmit_Click(object sender, EventArgs e) {string input = this.tbInput.Text;this.AddInputToLog(input);this.tbInput.Clear( );}}例5-3、4:源代码:publicpartialclass FrmMain : Form{public FrmMain( ){Initializeponent( );}privatevoid btnSetProp_Click(object sender, EventArgs e){this.Text = "测试对话框";this.FormBorderStyle = FormBorderStyle.FixedDialog;this.BackColor = Color.Gray;this.WindowState = FormWindowState.Normal; this.MinimizeBox = false;this.Height = 200;this.Width = 400;this.TopMost = true;}private FrmMain _CurrFrm = null;privatevoid btnCreate_Click(object sender, EventArgs e){if(this._CurrFrm == null){this._CurrFrm = new FrmMain( );this._CurrFrm.Show( );}else{this._CurrFrm.Activate( );}}privatevoid btnClose_Click(object sender, EventArgs e){if (this._CurrFrm !=null){this._CurrFrm.Close( );this._CurrFrm = null;}}privatevoid FrmMain_Load(object sender, EventArgs e){}}例5-5:源代码:// label1参数设置bel1.AutoSize = true;bel1.BackColor = System.Drawing.Color.Red;bel1.Font = new System.Drawing.Font("楷体_GB2312",12F, System.Drawing.FontStyle.Regular,System.Drawing.GraphicsUnit.Point,((byte)(134)));bel1.ForeColor = System.Drawing.Color.White;bel1.Location = new System.Drawing.Point(68, 43); = "label1";bel1.Size = new System.Drawing.Size(232, 16);bel1.TabIndex = 0;bel1.Text = "红底白字,楷体小四号, 无边框";bel1.Click += new System.EventHandler(bel1_Click);// label2参数设置bel2.AutoSize = true;bel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;bel2.Font = new System.Drawing.Font("幼圆",15F,System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,((byte)(134)));bel2.Location = new System.Drawing.Point(49, 79); = "label2";bel2.Size = new System.Drawing.Size(289, 22);bel2.TabIndex = 1;bel2.Text = "幼圆小三粗体, Single边框";bel2.Click += new System.EventHandler(bel2_Click); 例5-6:源代码:publicpartialclass Form1 : Form{privateint _Value = 0;//btnShowMsg的Click事件处理函数privatevoid btnShowMsg_Click(object sender, EventArgs e) {MessageBox.Show(string.Format("现在需要: {0} ", this._Value));}//“多一点〞按钮Click事件处理函数privatevoid btnAdd_Click(object sender, EventArgs e){this._Value++;this.lbRes.Text = string.Format("现在需要: {0} ", this._Value);}//“少一点〞按钮Click事件处理函数privatevoid btnSub_Click(object sender, EventArgs e){this._Value--;this.lbRes.Text = string.Format("现在需要: {0} ", this._Value);}}例5-7:源代码:publicpartialclass Form1 : Form{public Form1( ){Initializeponent( );}privatevoid buttons_CheckedChanged(object sender, EventArgs e) {string weeks = "";weeks += ckbWeek1.Checked ? "星期一" :"";weeks += ckbWeek2.Checked ? "星期二" : "";weeks += ckbWeek3.Checked ? "星期三" : "";weeks += ckbWeek4.Checked ? "星期四" : "";weeks += ckbWeek5.Checked ? "星期五" : "";weeks += ckbWeek6.Checked ? "星期六" : "";weeks += ckbWeek7.Checked ? "星期日" : "";string sport = "";sport += rbSword.Checked ? "击剑" : "";sport += rbJump.Checked ? "跳水" : "";sport += rbTiCao.Checked ? "体操" : "";string jiangpai = "";jiangpai += rbGold.Checked ? "金牌" : "";jiangpai += rbSliver.Checked ? "银牌" : "";jiangpai += rbTong.Checked ? "铜牌" : "";this.lbHint.Text = weeks + sport + jiangpai;}}例5-8:源代码:publicpartialclass Form1 : Form{privatevoid Form1_Load(object sender, EventArgs e){this.mtbMobile.Mask = ""; //手机:13后面9个必填数字this.mtbPhone.Mask = "00"; //:4位必填区号,7或8位?this.tbName.Text = "";this.tbUsers.Text = "";}privatevoid btnAdd_Click(object sender, EventArgs e){string usr = string.Format("<{0}>:<{1}>:<{2}>", //产生用户信息this.tbName.Text,this.mtbPhone.Text,this.mtbMobile.Text);//添加到用户记录文本框¨°this.tbUsers.AppendText(usr + System.Environment.NewLine);this.mtbMobile.Text = ""; //清空用户信息this.mtbPhone.Text = "";this.tbName.Text = "";}}例5-9:源代码:publicpartialclass Form1 : Form{public Form1( ){Initializeponent( );}privatevoid Form1_Load(object sender, EventArgs e){//设置cmbHouXuan只能从boBox中的已有候选值选择this bHouXuan.DropDownStyle = boBoxStyle.DropDownList; //lstResult只能执行单项选择,并且对所有值进展排序this.lstResults.SelectionMode = SelectionMode.One;this.lstResults.Sorted = true;this.GeneratebItems( ); //产生boBox中D的可选项}privatevoid GeneratebItems( ){this bHouXuan.Items.Clear( ); //移除原有的数据Random rd = new Random();for (int i = 0; i < 10; i++) //随机生成10个新的数据{string item = string.Format("Item-{0:X8}", rd.Next( ));this bHouXuan.Items.Add(item); //添加到boBox中}this bHouXuan.SelectedIndex = 0; //默认选中第一条}//重新生成boBox中的侯选项privatevoid btnFresh_Click(object sender, EventArgs e){this.GeneratebItems( ); //重新生成bBox中的候选项}//将bBox中选中值¦添加到ListBox中Dprivatevoid btnAddOne_Click(object sender, EventArgs e){//通过boBox.SelectedItem获取当前选中的候选项,然后添加到ListBox中Dstring item = (string)this bHouXuan.SelectedItem;this.lstResults.Items.Add(item);}//从ListBox中移除当前选中项privatevoid btnRemoveOne_Click(object sender, EventArgs e){if (this.lstResults.SelectedIndex >= 0) //如果当前ListBox中有选中条目,移除它{this.lstResults.Items.RemoveAt(this.lstResults.SelectedIndex);}}//从ListBox中移除所有项privatevoid btnRemovAll_Click(object sender, EventArgs e){this.lstResults.Items.Clear( );}}例5-10:源代码:privatevoid btnMsgBox_Click(object sender, EventArgs e){MessageBox.Show("这是第一个消息框,只有确认按钮");//显示最简单的MessageBoxMessageBox.Show("这是二个消息框¨,有标题,只有确认按钮", "第二个消息框");//显示有文本和标题的MessageBox//显示具有文本、标题、确定和取消按钮的MessageBoxMessageBox.Show("这是第三个消息框¨,有标题,只有确认和¨取消按钮","第三个消息框", MessageBoxButtons.OKCancel);//显示具有文本、标题、确定和¨取消按钮、告警图标的MessageBox MessageBox.Show("这是第四个消息框¨,有标题,只有确认和取消按钮,告警图标", "第四个消息框", MessageBoxButtons.OKCancel,MessageBoxIcon.Warning);}例5-11:源代码:private void btnOpenFile_Click(object sender, EventArgs e){OpenFileDialog ofdlg = new OpenFileDialog( );//创立OpenFileDialog对象ofdlg.Filter = "文本文件(*.txt)|*.TXT|Word文件(*.doc)|*.DOC"; //只选择TXT和DOC 扩展名文件ofdlg.Title = "选择文本文件或Word文件"; //设置对话框的标题if(ofdlg.ShowDialog() == DialogResult.OK) //显示对话框,并等待返回{this.tbOpenFileName.Text = ofdlg.FileName; //如果用户选择了文件那么显示到界面}else{this.tbOpenFileName.Text = "还没有选择要翻开的文件"; //没有选择文件,那么显示默认提示}}例5-12:源代码:private void btnSetColor_Click(object sender, EventArgs e){ColorDialog cdlg = new ColorDialog( ); //创立ColorDialog对象cdlg.Color = btnSetColor.ForeColor; //设置默认颜色为btnSetColor当前前风光if (cdlg.ShowDialog( ) == DialogResult.OK) //显示对话框,并等待返回{this.btnSetColor.ForeColor = cdlg.Color; //选择了新的颜色,那么更新btnSetColor前风光}}例5-13:源代码:private void btnSetFont_Click(object sender, EventArgs e){FontDialog fdlg = new FontDialog( ); //创立FontDialog对象fdlg.Font = btnSetFont.Font; //设置默认字体为btnSetFont当前字体if (fdlg.ShowDialog( ) == DialogResult.OK) //显示对话框,并等待返回{this.btnSetFont.Font = fdlg.Font; //选择了新的字体,那么更新btnSetFont的字体}}四、实验总结通过此次实验,我学会了在Visual Studio 2021中创立和运行窗体程序;也掌握了Windows窗体的根本操作;学习使用了常用的Windows控件;同时学会了使用菜单和工具栏以及通用对话框。
net core 开发winform实例

net core 开发winform实例标题:使用.NET Core开发WinForm应用程序引言:在现代软件开发领域,使用.NET Core开发WinForm应用程序是一种常见的选择。
本文将探讨如何使用.NET Core框架来开发WinForm 应用程序,以及其在提供用户友好界面和功能强大的同时,如何满足现代软件开发的需求。
一、引入.NET Core框架.NET Core是一个跨平台的开发框架,它提供了许多强大的功能和工具,使开发人员能够在Windows、Linux和macOS等操作系统上构建高性能的应用程序。
通过使用.NET Core,我们可以轻松地开发和部署WinForm应用程序,无需担心操作系统的限制。
二、创建WinForm应用程序使用.NET Core开发WinForm应用程序的第一步是创建一个新的项目。
我们可以使用Visual Studio或者命令行工具来创建一个空白的WinForm应用程序项目。
在项目中,我们可以添加窗体、控件和事件处理程序等元素,以构建我们需要的功能和用户界面。
三、使用.NET Core的优势.NET Core框架提供了许多优势,使得开发WinForm应用程序变得更加简单和高效。
首先,它具有跨平台的特性,使得我们的应用程序可以在多个操作系统上运行。
其次,它具有更好的性能和可扩展性,可以处理大规模的数据和复杂的业务逻辑。
此外,.NET Core 还提供了丰富的类库和工具,使开发过程更加高效和便捷。
四、用户界面设计在开发WinForm应用程序时,用户界面设计是至关重要的。
我们可以使用.NET Core提供的控件和布局管理器来创建一个直观而美观的界面。
通过合理地安排控件的位置和大小,以及使用适当的颜色和字体,我们可以提供给用户一个舒适和友好的使用体验。
五、数据处理和业务逻辑在WinForm应用程序中,数据处理和业务逻辑是不可或缺的部分。
我们可以使用.NET Core提供的数据库访问类库来连接数据库,并使用LINQ等技术进行数据查询和操作。
net core 开发winform实例

net core 开发winform实例Net Core 是一个跨平台的开发框架,可以用于开发各种类型的应用程序,包括 WinForm 窗体应用程序。
本文将介绍如何使用 Net Core 开发一个简单的 WinForm 实例。
我们需要安装 Net Core SDK。
打开官方网站,下载并安装最新版本的 Net Core SDK。
安装完成后,我们可以使用命令行检查是否安装成功,输入命令 "dotnet --version",如果输出了版本号,则表示安装成功。
接下来,我们需要创建一个新的 Net Core WinForm 项目。
打开命令行窗口,进入项目保存的目录,然后运行命令 "dotnet new winforms"。
这个命令将在当前目录创建一个新的 WinForm 项目。
项目创建完成后,我们可以使用 Visual Studio 或者其他编辑器打开项目文件夹。
在项目文件夹中,有一个名为 "Program.cs" 的文件,这是项目的入口文件。
打开这个文件,我们可以看到一个名为 "Program" 的类,其中有一个名为 "Main" 的方法。
这个方法是程序的入口点,我们可以在这里编写我们的代码。
接下来,我们可以开始编写我们的 WinForm 代码。
首先,我们需要在 "Main" 方法中创建一个名为 "form" 的 WinForm 对象,代码如下:```csharpApplication.Run(new Form());```然后,我们可以在 "Form" 对象中添加一些控件,例如按钮、标签等。
可以使用 Visual Studio 的设计器来快速添加控件,也可以手动编写代码来创建和布局控件。
在添加控件之后,我们可以给按钮添加事件处理程序,例如点击按钮之后弹出一个对话框。
单例模式(Winform窗体的实现)

单例模式(Winform窗体的实现) 在我的设计模式分类当中,我选择单例模式作为我第⼀个要写的设计模式,其⼀,单例模式简单、容易理解让⼈接受,其⼆,单例模式很常⽤,在实际的Winform窗体应⽤开发中能够带来更好的客户体验。
单例模式的核⼼是在应⽤程序的⽣命周期中只实例化⼀次当前类,让整个应⽤整个应⽤程序中只拥有⼀个当前类实例化的对象,在Winform应⽤程序中,我们显⽰窗体的⽅法有两种⽅法:第⼀种,Show()⽅法,这种⽅法当点击多次按钮的时候会显⽰多个当前的窗体,造成操作不便。
第⼆种,ShowDialog()⽅法,这种⽅法显⽰出窗体之后,我们只能对当前窗体进⾏操作直到这个窗体关闭之后,⽤户体验不好。
那怎样才能只产⽣⼀个窗体,⽽且不影响对其他窗体的操作?解决这样的问题我们最简单的想法就是如果每次我们单机按钮都使⽤相同的实例化对象,就只能产⽣⼀个窗体了,再使⽤Show()⽅法显⽰窗体就不会影响其他窗体的操作了。
说了这么多,让我们看看怎么在窗体中使⽤单例模式吧,核⼼参考代码如下:public partial class FrmSingleton : Form{private static FrmSingleton frm = null;private FrmSingleton(){InitializeComponent();}public static FrmSingleton CreateInstrance(){if (frm == null){frm = new FrmSingleton();}return frm;}}FrmSingleton 从上⾯的代码我们可以看出使⽤单例模式有三个重要的要点: (1)构造⽅法⼀定要定义成私有的(这样做的好处就是我们只能在当前类⾥⾯实例化⼀个对象,类外⾯不能实例化,外界想使⽤的话我们可以给它提供⼀个静态⽅法供外界获取) (2)定义⼀个私有的数据类型为当前类的变量(⽤于保证类的实例化对象的唯⼀性) (3)定义⼀个静态的⽅法⽤于给外界提供当前类的实例化对象 上⾯是单例模式使⽤当中应该注意的地⽅,定义好了之后,我们就要在主窗体中的button事件中调⽤它了,具体代码如下:private void button1_Click(object sender, EventArgs e){FrmSingleton FrmSingleton = FrmSingleton.CreateInstrance();FrmSingleton.Show();}button事件调⽤ 好了,⼀个简单的单例模式的Demo就写完了,我们运⾏⼀下应⽤程序,多次点击按钮,也只产⽣⼀个窗体,是不是很有成就感,但是这个时候⼀定不要激动太早,当我们关闭当前打开的窗体之后,再次单机按钮则提⽰我们“⽆法访问已经释放的内存”,其实也很容易解释,当我们关闭窗体时,C#默认的垃圾回收机制会回收我们的frm对象,但此时frm对象并不为null,当我们再次使⽤frm==null进⾏判断时,结果是false,返回出去的是释放内存的frm对象,所以造成这样的结果,那么我们怎么做才能避免异常呢,最简单的做法就是在判断frm==null的地⽅添加⼀个或运算,判断⼀下是否已经释放,如果释放了,我们也要进⾏再次实例化,修改我们刚才的代码,修改后的代码如下:public partial class FrmSingleton : Form{private static FrmSingleton frm = null;private FrmSingleton(){InitializeComponent();}public static FrmSingleton CreateInstrance(){if (frm == null ||frm.IsDisposed){frm = new FrmSingleton();}return frm;}}FrmSingleton 这样我们在运⾏代码,就不会出现我们刚才遇到的问题了,⼀个简单的单例模式这样才算结束,⼜可以愉快的玩耍了。
winform ui界面设计例程

winform ui界面设计例程WinForms 是一个用于创建 Windows 应用程序的桌面应用程序框架,它提供了丰富的用户界面设计功能。
在 WinForms 中,你可以使用 Visual Studio 或者其他集成开发环境来创建 UI 界面。
下面我将从创建新项目、设计界面、添加控件和事件处理等方面来介绍 WinForms UI 界面设计的例程。
首先,你可以打开 Visual Studio,并选择创建一个新的WinForms 项目。
在创建项目的过程中,你可以选择项目的名称和保存位置等信息。
创建完成后,你会看到一个空白的窗体(Form)出现在你的项目中。
接下来,你可以开始设计界面。
在窗体上拖放控件,比如按钮、文本框、标签等,来构建你的界面布局。
你可以使用属性窗格来调整控件的属性,比如大小、位置、颜色等。
你还可以使用布局管理器来帮助你更好地管理控件的布局。
除了基本的控件外,你还可以使用自定义控件或者第三方控件来丰富你的界面设计。
这些控件可以帮助你实现更复杂的功能和更美观的界面效果。
在界面设计完成后,你可以添加事件处理程序来响应用户的操作。
比如,当用户点击按钮时,你可以编写代码来处理按钮的点击事件,执行相应的操作。
除了界面设计,你还可以在 WinForms 中实现数据绑定、图形绘制、动画效果等功能。
这些功能可以帮助你实现更丰富的用户界面交互体验。
总的来说,WinForms 提供了丰富的工具和功能来帮助你设计和实现 Windows 应用程序的用户界面。
通过合理的布局和控件选择,结合事件处理和其他功能,你可以创建出功能丰富、美观的 UI 界面来满足用户需求。
希望这些信息能对你有所帮助。
windows程序设计实验报告

windows程序设计实验报告《Windows程序设计》实验报告实验室: S306(308)学院:计算机科学与技术专业:计算机科学与技术⽬录实验⼀、熟悉visual c++的编程环境 (3)⼀、实验⽬的和要求: (3)⼆、实验内容、程序清单及运⾏结果: (3)1.编辑第⼀个C++程序 (3)2. ⽤AppWizard建⽴⼀个MFC Windows应⽤ (3)3. 编写简单的计算程序 (4)运⾏结果: (4)三、⼼得体会: (4)实验⼆、对话框的使⽤ (5)⼀、实验⽬的和要求: (5)⼆、实验内容、程序清单及运⾏结果 (5)实验步骤: (5)实验结果: (7)三、⼼得体会: (7)实验三、创建⼀个进程来运⾏⼀个应⽤程序 (8)⼀、实验要求和⽬的 (8)⼆、实验内容、程序清单及运⾏结果 (8)实验步骤: (8)实验结果: (9)三、实验⼼得 (9)实验四、调整线程优先级 (10)⼀、实验要求和⽬的 (10)⼆、实验内容、程序清单及运⾏结果 (10)实验步骤: (10)实验结果: (11)三、实验⼼得 (11)实验⼀、熟悉visual c++的编程环境⼀、实验⽬的和要求:1.了解和使⽤VC集成开发环境2.熟悉VC环境的基本命令和功能键,3.熟悉常⽤的功能菜单命令4.学习使⽤VC++环境的帮助5.学习完整的C++程序开发过程6.理解简单的C++程序结构7.了解⽤Visual C++开发Windows MFC应⽤程序的过程⼆、实验内容、程序清单及运⾏结果:1.编辑第⼀个C++程序源程序代码://hello world example#includeint main() {cout << "hello!"<< endl ;return 0; //正常返回}运⾏结果:2. ⽤AppWizard建⽴⼀个MFC Windows应⽤在窗⼝中输出"Hello,World!",修改OnDraw函数的定义,在最后⼀⾏加⼀句:pDC->TextOut(50,50,"Hello, World");运⾏结果:3. 编写简单的计算程序输⼊圆的半径,计算圆的周长和⾯积并输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:WinForm程序设计
实验名称:WINFORM程序设计学时安排: 2课时实验类别:验证型、设计型实验要求:1人1组
一、实验目的和任务
1.掌握创建WinForms应用程序的步骤
2.熟悉WinForms应用程序的控件
二、注意事项和要求
1.第一部分必须要完成,第二部分尽量完成,第三部分供有余力的同学完成;
2.完成后上传项目压缩文件到ftp服务器指定目录,压缩文件名称:学号(后两位)-姓名。
三、实验内容和步骤
1.第一部分:跟着老师练习
1)创建一个名为AppSum的WinForms应用程序,要求用户在文本框中输入2个数字,
然后求2数之和。
效果如下图所示:
2.第二部分:自己思考练习
1)创建一个Windows窗体应用程序,允许用户从给定的颜色和字体列表中选择颜色、字
体等设置。
用户还可以通过将标准颜色用作基本颜色来创建自定义颜色,并使用滚动
条来增大/减小红色、蓝色和绿色的渐变。
选定的颜色应适用于窗体界面。
选定的字体
中应显示一个文本示例。
效果如下图所示:
2)具体步骤:
新建一个名为AppSettings的Winforms应用程序项目,并将主窗体重命名为FrmSettings。
拖动一个TabControl控件到窗体上,name属性改为tagSettings;选择tagSettings 控件的TabPages属性并单击右边的“…”按钮;出现“TabPage集合编辑器”对
话框。
添加两个选项卡页,并将其分别命名为tabColor和tabFont,对应的Text
属性设置为“颜色”和“字体”。
拖动工具箱中的控件来设计窗体,颜色标签页对应的窗体如下:
各控件的属性如下:
切换回颜色选项卡,在组合框cboColor的SelectedIndexChanged事件中添加以下代码:
在hsbRed的Scroll事件中添加以下代码:
设置hsbGreen和hsbBlue的Scroll事件为hsbRed_Scroll:
在btnApply的Click事件中添加如下代码:
切换到FrmSettings类的开始部分,添加如下两个成员变量:
切换到字体选项卡,在lbFont(列表框)的SelectedIndexChanged事件中添加以下代码:
在rbSmall和rbLarge(单选按钮)的CheckedChanged事件中添加以下代码:
3.第三部分:扩展练习
1)用WinForms形式程序AppLogin模拟过用户登录功能。
要求:
建立两个窗体,一个为登录窗体,一个为主窗体
登录窗体上用TextBox控件接受用户名和密码,如果成功则显示主窗体,如果失败允许用户继续输入
用户输入失败5次后,提示用户今天不能再登录该系统,然后程序退出,结束执行。
运行效果如下所示:。