常用控件的编程实验报告
- 格式:doc
- 大小:422.50 KB
- 文档页数:7
实验二常用控件的编程一、实验目的和要求(1)掌握窗口下拉列表框、选择钮、组合框、多行编辑框等常用控件的基本使用方法和编程方法;(2)掌握窗口控件的齐整性操纵方法以及Tab顺序的设置;(3)掌握SQL语句的使用,PowerBuilder系统提供的SQL画板的使用方法。
二、实验准备(1)复习有关下拉列表框控件、选择按钮控件、多行编辑框控件以及组合框控件的内容;(2)启动Powerbuilder 9.0;(3)选择已经创建的应用mypb..pbl。
三、实验步骤本次实验将创建一个学生基础数据的录入窗口;其功能是向实验1中创建的student数据库中的student表输入数据。
1.创建窗口对象创建一个新的弹出式窗口对象,Title为“学生基本情况输入”;W indowType为“popup!”;保存窗口名称为w_studentinput。
2.向窗口中添加控件(1)布置窗口中的静态文本控件在窗口控件下拉列表工具栏图标中选择静态文本控件,然后在窗口上单击,生成静态文本控件。
将Text属性设置为“学生情况录人”,选择字体为“华文行楷”(无此字体时,可以换成别的字体),字体尺寸为26,按下“Bold”图标按钮,选择“TextColor”为深蓝色。
其他输入栏的说明文字都选为宋体12号黑色宇;使用Ctr l和T组合键进行外观复制后修改Text属性完成。
(2)布置窗口中的单行编辑框控件在窗口控件下拉列表工具栏图标中选择单行编辑框控件,然后在窗口上单击,生成单行编辑框控件。
使用Ctrl和T组合键进行外观复制生成5个单行编辑框,它们的名称和用途见表4。
表4 单行编辑框的名称和用途(3)布置窗口中的多行编辑框控件在窗口控件下拉列表工具栏图标中选择多行编辑框控件,然后在窗口上单击,生成多行编辑框控件。
其名称Name为“mle_resume”,选中“IgnoreDefaultButton”复选框。
多行编辑框控件用于输入个人简历。
一、实验背景随着计算机技术的发展,软件系统的复杂性日益增加,为了提高软件开发的效率和质量,用户控件技术应运而生。
用户控件是软件组件化、模块化的重要手段,可以方便地重用和扩展。
本实验旨在通过学习用户控件的基本原理和实现方法,提高学生对控件编程的理解和技能。
二、实验目的1. 理解用户控件的概念和作用;2. 掌握用户控件的创建方法;3. 学会使用用户控件;4. 了解用户控件的应用场景。
三、实验内容1. 用户控件的基本概念用户控件是具有特定功能的可重用组件,它可以封装一定的功能、界面和逻辑,方便其他程序调用。
用户控件可以看作是一个独立的程序,它有自己的生命周期,包括创建、销毁、初始化和释放等。
2. 用户控件的创建方法(1)使用Visual Studio创建用户控件1)在Visual Studio中,选择“文件”→“新建”→“项目”;2)在“新建项目”对话框中,选择“Visual C#”或“Visual Basic”作为开发语言,然后选择“Windows窗体控件库”作为项目类型;3)在“名称”文本框中输入项目名称,点击“确定”;4)在项目创建成功后,右键点击项目名称,选择“添加”→“用户控件”;5)在弹出的“用户控件”对话框中,输入用户控件名称,点击“确定”;6)在用户控件设计器中,根据需求添加控件、设置属性和事件处理程序。
(2)使用C#代码创建用户控件1)在Visual Studio中,创建一个C#类库项目;2)在类库项目中,添加一个新的类,用于创建用户控件;3)在类中,定义控件所需的属性、方法和事件;4)在Visual Studio的解决方案资源管理器中,右键点击项目名称,选择“添加”→“用户控件”;5)在弹出的“用户控件”对话框中,选择“从代码创建”,点击“确定”;6)在用户控件设计器中,将C#代码生成的控件添加到设计器中。
3. 使用用户控件1)在Windows窗体应用程序中,引入用户控件项目;2)在窗体设计器中,从工具箱中拖拽用户控件到窗体上;3)设置用户控件的属性和事件处理程序;4)运行程序,验证用户控件的功能。
一、实验目的通过本次实验,掌握安卓常用控件的基本属性、方法和事件处理,熟悉这些控件在实际应用中的使用方法,提高对安卓界面设计的理解和应用能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Android Studio3.5.33. 手机型号:华为Mate 20三、实验内容本次实验主要涉及以下安卓常用控件:1. TextView2. EditText3. Button4. ImageView5. RadioButton6. CheckBox7. Spinner8. ListView四、实验步骤1. 创建一个新的Android项目,命名为“ControlOperation”。
2. 在布局文件activity_main.xml中添加以下控件:```xml<TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Hello World!"android:layout_marginTop="20dp" /><EditTextandroid:id="@+id/editText1"android:layout_width="match_parent"android:layout_height="wrap_content" android:hint="Enter your name" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Click Me!" /><ImageViewandroid:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <RadioButtonandroid:id="@+id/radioButton1"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Male" /><CheckBoxandroid:id="@+id/checkbox1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Subscribe to newsletter" /><Spinnerandroid:id="@+id/spinner1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:entries="@array/countries" /><ListViewandroid:id="@+id/listView1"android:layout_width="match_parent"android:layout_height="wrap_content" />```3. 在strings.xml文件中添加以下字符串资源:```xml<string name="app_name">Control Operation</string> <string name="enter_name">Enter your name</string> <string name="click_me">Click Me!</string><string-array name="countries"><item>China</item><item>USA</item><item>Japan</item></string-array>```4. 在MainActivity.java文件中添加以下代码:```javaimport android.os.Bundle;import android.view.View;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.ScrollView;import android.widget.TextView;import android.widget.CheckBox;import android.widget.Spinner;import android.widget.ListView;import android.widget.ArrayAdapter;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private TextView textView1;private EditText editText1;private Button button1;private ImageView imageView1;private RadioButton radioButton1;private CheckBox checkBox1;private Spinner spinner1;private ListView listView1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);textView1 = findViewById(R.id.textView1);editText1 = findViewById(R.id.editText1);button1 = findViewById(R.id.button1);imageView1 = findViewById(R.id.imageView1);radioButton1 = findViewById(R.id.radioButton1);checkBox1 = findViewById(R.id.checkbox1);spinner1 = findViewById(R.id.spinner1);listView1 = findViewById(R.id.listView1);ArrayAdapter<CharSequence> adapter =ArrayAdapter.createFromResource(this,R.array.countries, yout.simple_spinner_item);adapter.setDropDownViewResource(yout.simple_spinner_dropdown _item);spinner1.setAdapter(adapter);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String name = editText1.getText().toString();Toast.makeText(MainActivity.this, "Hello " + name, Toast.LENGTH_SHORT).show();}});radioButton1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "You selected Male", Toast.LENGTH_SHORT).show();}});checkBox1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (checkBox1.isChecked()) {Toast.makeText(MainActivity.this, "You subscribed to the newsletter", Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this, "You unsubscribed from the newsletter", Toast.LENGTH_SHORT).show();}}});}}```5. 运行程序,观察效果。
第1篇一、实验目的本次实验旨在让学生深入了解中的数据绑定控件,掌握数据绑定控件的基本使用方法、属性、事件以及在实际开发中的应用场景。
通过实验,提高学生对数据绑定技术的理解,增强编程实践能力。
二、实验环境1. 开发工具:Visual Studio 20192. 数据库:SQL Server 20193. 实验项目:创建一个简单的学生信息管理系统三、实验内容1. 创建项目在Visual Studio中创建一个 Web Forms项目,命名为“StudentInfoSystem”。
2. 创建数据库创建一个名为“StudentDB”的数据库,并在其中创建一个名为“Students”的表,包含以下字段:- ID(主键,自增)- Name(姓名)- Age(年龄)- Gender(性别)- Class(班级)3. 数据绑定控件(1)添加数据绑定控件在页面中添加以下数据绑定控件:- Label:用于显示学生姓名- TextBox:用于输入学生姓名- Button:用于提交数据(2)设置数据绑定控件属性- 设置Label控件的Text属性为“姓名:”- 设置TextBox控件的ID属性为“txtName”- 设置Button控件的ID属性为“btnSubmit”4. 数据源(1)创建数据访问类创建一个名为“StudentDAL”的类,用于实现数据访问逻辑。
```csharppublic class StudentDAL{public static List<Student> GetStudents(){// 连接数据库,查询Students表// 返回查询结果}}```(2)获取数据源在页面加载事件中,调用数据访问类的方法获取数据源,并绑定到数据绑定控件。
```csharpprotected void Page_Load(object sender, EventArgs e){if (!IsPostBack){// 获取数据源List<Student> students = StudentDAL.GetStudents(); // 绑定数据源DataList1.DataSource = students;DataList1.DataBind();}}```5. 事件处理(1)提交数据为Button控件添加点击事件,实现数据提交功能。
实验日期_____________________实验名称:实验一常用标准控件一【实验目的与要求】1.掌握Visual Basic的启动与退出。
2.熟悉Visual Basic的集成开发环境。
3.掌握在窗体中放置控件的方法。
4.掌握在“属性窗口”中设置控件属性的方法。
5.掌握在“代码编辑器”窗口中输入程序代码的方法。
6.掌握工具栏上启动按钮、结束按钮的使用方法。
7.掌握标签、文本框、命令按钮、列表框等控件的使用方法。
【实验内容与步骤】实验1.1.1 标签的使用(一)1.题目与要求:在名称为Form1、标题为“标签”的窗体上画一个名称为Label1的标签,并设置适当属性以满足以下要求:1)标签的内容为“计算机等级考试”;2)标签可根据显示内容自动调整其大小;3)标签带有边框,且标签内容显示为三号字。
2.实验步骤1)界面设置:在名称为Form1的窗体上放置一个标签控件Label1;2)属性设置(请将表格补充完整)表1.1.1 对象属性文件名为sjt1.frm。
实验1.1.2 标签的使用(二)1.在名称为Form1的窗体上画一个名称为 Label1的标签,标签的宽和高分别为2000、300,有边框,并利用属性窗口设置适当的属性,使其居中显示“等级考试”,并使标签的外观如图所示。
2.属性设置(请将表格补充完整)表1.1.2 对象属性sjt2.frm。
实验1.1.3 文本框的使用1.题目与要求:在名称为Form1的窗体上画两个文本框,名称分别为T1、T2,初始情况下都没有内容。
请编写适当的事件过程,使得在运行时,在T1中输入的任何字符,立即显示在T2中。
程序中不得使用任何变量。
2.实验步骤1)界面设置:在名称为Form1的窗体上放置两个文本框;2)属性设置表1.1.3 对象属性Private Sub T1_Change()T2.Text=T1.Text (T2=T1)End Sub3)保存文件:存盘时必须存放在C:\VB\Sy01文件夹下,工程文件名为sjt3.vbp,窗体文件名为sjt3.frm。
实验七常用控件程序设计(4个学时)一、实验目的1.掌握单选按钮、复选按钮、框架、列表框、组合框、时钟和滚动条的属性、事件和方法。
2.明确常用内部控件的功能,熟练使用“属性”窗口设置属性。
3.掌握在常用内部控件的事件过程中编写程序代码。
二、实验内容1. 设计一个程序运用单选按钮、复选框和框架对文本框中文本的颜色、字号和效果进行设置。
要求:文本的颜色可以选择红色、绿色和蓝色。
文本的字号可以选择12、18、24号,效果可以选择删除线和下划线。
当文本框中输入文字后,单击某个按钮,文本框中的文字将按所选择的选项进行设置。
1)代码设计如下Private Sub Command1_Click()Select Case Combo1.TextCase "蓝色"Text1.ForeColor = vbBlueCase "绿色"Text1.ForeColor = vbGreenCase "红色"Text1.ForeColor = vbRedEnd SelectSelect Case Combo2.TextCase "12"Text1.FontSize = 12Case "18"Text1.FontSize = 18Case "24"Text1.FontSize = 24End SelectIf Check1.Value = 1 Then Text1.FontUnderline = True Else Text1.FontUnderline = FalseIf Check2.Value = 1 Then Text1.FontStrikethru = True Else Text1.FontStrikethru = FalseEnd SubPrivate Sub Form_Load()Text1.Text = "岁月蹉跎,愿一个人独自承担所有的因果"Combo1.Text = "黑色"Combo2.Text = "12"End Sub2)运行后的结果(将运行结果的界面截下来粘贴在下面)3)调试过程记录(错误情况及改正方法,不得少于三条)Combo1的属性值为2时text为只读属性2. 编写一个为组合框中添加或删除内容的程序。
一、实验目的1. 熟悉常见控件的功能和使用方法。
2. 学习控件在应用程序中的布局和事件处理。
3. 提高编程实践能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C#三、实验内容本次实验主要使用Windows窗体应用程序进行控件的使用,具体内容包括:1. 控件的创建和添加2. 控件的属性设置3. 控件的布局4. 控件的事件处理四、实验步骤1. 创建Windows窗体应用程序(1)打开Visual Studio 2019,选择“创建新项目”。
(2)在“创建新项目”对话框中,选择“Windows窗体应用程序”,命名为“控件实验”。
(3)点击“创建”按钮,完成应用程序的创建。
2. 添加控件(1)在工具箱中找到所需控件,例如:文本框(TextBox)、按钮(Button)、标签(Label)等。
(2)将控件拖拽到窗体上,即可添加控件。
3. 设置控件属性(1)选中控件,在属性窗口中查看和修改控件的属性。
(2)例如,设置文本框的Text属性为“请输入内容”,设置按钮的Text属性为“提交”。
4. 控件布局(1)使用布局工具对控件进行布局,例如:使用水平布局、垂直布局、网格布局等。
(2)调整控件的大小和位置,使界面美观。
5. 控件事件处理(1)双击控件,打开代码编辑器。
(2)在事件处理函数中编写代码,实现所需功能。
(3)例如,在按钮的点击事件中,获取文本框的值并显示在标签中。
五、实验结果与分析1. 创建了包含文本框、按钮、标签的Windows窗体应用程序。
2. 添加并设置了控件的属性。
3. 对控件进行了布局,使界面美观。
4. 编写了按钮点击事件处理函数,实现了获取文本框值并显示在标签中的功能。
六、实验总结通过本次实验,我掌握了以下内容:1. 常见控件的功能和使用方法。
2. 控件在应用程序中的布局和事件处理。
3. 提高了编程实践能力。
在实验过程中,我发现以下问题:1. 对部分控件属性设置不够熟悉,需要加强学习。
实验二常用控件的编程一、实验目的和要求(1)掌握窗口下拉列表框、选择钮、组合框、多行编辑框等常用控件的基本使用方法和编程方法;(2)掌握窗口控件的齐整性操纵方法以及Tab顺序的设置;(3)掌握SQL语句的使用,PowerBuilder系统提供的SQL画板的使用方法。
二、实验准备(1)复习有关下拉列表框控件、选择按钮控件、多行编辑框控件以及组合框控件的内容;(2)启动Powerbuilder 9.0;(3)选择已经创建的应用mypb..pbl。
三、实验步骤本次实验将创建一个学生基础数据的录入窗口;其功能是向实验1中创建的student数据库中的student表输入数据。
1.创建窗口对象创建一个新的弹出式窗口对象,Title为“学生基本情况输入”;W indowType为“popup!”;保存窗口名称为w_studentinput。
2.向窗口中添加控件(1)布置窗口中的静态文本控件在窗口控件下拉列表工具栏图标中选择静态文本控件,然后在窗口上单击,生成静态文本控件。
将Text属性设置为“学生情况录人”,选择字体为“华文行楷”(无此字体时,可以换成别的字体),字体尺寸为26,按下“Bold”图标按钮,选择“TextColor”为深蓝色。
其他输入栏的说明文字都选为宋体12号黑色宇;使用Ctr l和T组合键进行外观复制后修改Text属性完成。
(2)布置窗口中的单行编辑框控件在窗口控件下拉列表工具栏图标中选择单行编辑框控件,然后在窗口上单击,生成单行编辑框控件。
使用Ctrl和T组合键进行外观复制生成5个单行编辑框,它们的名称和用途见表4。
表4 单行编辑框的名称和用途(3)布置窗口中的多行编辑框控件在窗口控件下拉列表工具栏图标中选择多行编辑框控件,然后在窗口上单击,生成多行编辑框控件。
其名称Name为“mle_resume”,选中“IgnoreDefaultButton”复选框。
多行编辑框控件用于输入个人简历。
(4)布置窗口中的单选钮和组合框控件窗口中共有两组单选钮,一组为性别选择,另一组为党团员选择。
性别选择单选钮的设计方法为:在窗口控件下拉列表工具栏图标中选择组合框控件,然后在窗口上单击,生成组合框控件、再选择单选钮控件,在组合框中单击,生成单选钮控件。
设置其名称为rb_man,Text为“男”,选中Checked属性;同样再在组合框中放置一个单选钮控件,设置其名称为rb_woman,Text为“女”,不选中Checked属性。
类似地,再设置一组单选钮,用于党团员选择,其属性设置见表5。
注意,在PowerBuilder中,单选钮的组合是根据输入的顺序和Checked属性的选择自动识别的;所以,一定要有秩序地输入,如果出现组合上的混乱,可以将单选钮全部删除后重新输入。
(5)布置窗口中的下拉列表框控件在窗口控件下拉列表工具栏图标中选择下拉列表框控件,然后在窗口上单击,生成下拉列表框控件。
输入下拉列表框控件名称为ddlb_nation,不选中Sorted属性,选中Vscrollbar 属性。
单击下拉列表框控件后拖动下边框,调整下拉列表框展开后的长度。
(6)布置窗口中的命令按钮控件在窗口控件下拉列表工具栏图标中选择命令按钮控件,然后在窗口上单击,生成命令按钮控件。
窗口中共有两个命令按钮控件,设置一个按钮的Text属性为“确定”,名称为cb_ok.选中default属性;设置一个按钮的Text属件为“退出”,名称为cb_exit,选中Cancel 属性。
图1 学生情况录入界面3.窗口控件的齐整性操作和设置输入时的Tab顺序用手工来对齐控件和调整控件大小是费时且枯燥的工作。
PowerBuilder已经为我们提供了自动化的齐整性操作工具,例如,要使一排控件对齐,首先选中一排中的第1个控件,然后按下Ctrl键,再去单击选中这一排中的其他控件,可以看到,当选择达到两个或两个以上控件时,工具栏上齐整性操作下拉列表图标按钮由灰(不可用)变为亮(可用)。
单击齐整性工具栏中的上边对齐图标按钮,被选中的这一排控件就按上边对齐了。
试着使用其他齐整性工具按钮。
设置输入数据时的Tab键顺序的方法:(1)单击菜单项Format│Tab Order,这时,所有控件右上角出现红色数字框;(2)按照输人习惯;从10开始,以10递增的顺序设置输人控件的Tab键顺序,0为无Tab键顺序;(3)调整完后,再单击菜单项Format│Tab Order,结束Tab键顺序的设置。
4.编写脚本(1)下拉列表框控件的Constructor事件的脚本单击选中下拉列表框控件,选择右键弹出菜单中的Script菜单项,进人SCript子窗口,选择事件下拉列表框中的Constructor事件,输人以下脚本:this.additem("汉族")this.additem("回族")this.additem("维吾尔族)this.additem("藏族")this.additem("苗族")this.additem("黎族")(2)“退出”按钮的脚本单击选中“退出”命令按钮控件,选择右键弹出菜单中的SCript菜单项,进入SCript 子窗口,选择事件下拉列表框中的Clicked事件,输入以下脚本:Close(Parent)(3)“确定”按钮的脚本“确定”按钮的代码比较长,首先是对输入数据的有效性检查。
这是所有用户界面设计时都必须考虑到的,它包括检查必要的数据是否输入了,输入的类型、范围和格式是否正确;其次是对输入数据的预处理,例如去前后的空格,数值的转换等:第三是逻辑检查,尽管输入数据是有效的,但还必须保证数据在逻辑上的有效性,此例中,学号是惟一的,不允许有重复,所以进行了学号的重复性检查;第四是将数据写入数据库,这里直接采用了SQL 语句;最后是将输入控件全部置空,为下一条记录的输入作准备。
PowerBuilder提供了常用的变量类型、函数、全局变量、循环语句以及SQL语句的粘贴工具,将光标置于Script区中,试着使用工具栏上“Paste Function”、“Paste SQL”、“Paste Statement”和“Paste Global”等图标按钮,将会发现在PowerBuilder环境中编程是非常简便的。
尤其是SQL语句的输入画板,十分方便快捷,即使对SQL 语句不熟悉也可以输入完整、正确的SQL语句,可以说,PowerBuilder的SQL 语句画板,也是一个学习SQL 语句的很好的工具。
单击选中“确定”命令按钮控件,选择右键弹出菜单中的SCript菜单项,进人SCript 子窗口,选择事件下拉列表框中的Clicked 控件,输入以下脚本。
Long ll_id,ll_idate ld_birthdaystring ls_name,ls_nation,ls_home, ls_sex,ls_tel,ls_party//数据格式检验if sle_id.text=”” OR isNull(sle_id.text)thenmessagebox(”缺少数据”,”请输入学号”)sle_id.setfocus()returnelseif sle_name.text=”” OR isNull(sle_name.text)thenmessagebox(”缺少数据”,”请输入学生姓名”)sle_name.setfocus()returnend ifIf sle_birthday.tex t<>”” AND not isNull(sle_birthday) thenif isDate(sle_birthday.text)thenld_birthday=date(sle_birthday.text)elsemessagebox(”输入数据错误”,”请使用“年-月-日”的日期格式”)sle_birthday.setfocus()returnend ifend ifll_id=long(sle_id.text)//取出党团员选择if rb_1.checked=true thenlls_party=rb_1.textelseif rb_2.checked=true thenls_party=rb_2.textelsels_Party=rb_3.textend if//取出性别选择if rb_man.checked=true thenls_sex=rb_man.textelseif rb_woman.checked=true thenls_sex=rb_woman.textend if//由民族ddlb,取出民族选择if ddlb_nation.text="none" thenls_ nation=""elsels_ nation=trim(ddlb_nation.text)end if//检查学导有无重号SELECT student.stud_idINTO:ll_iFROM studentWHERE student.stu_id=:ll_id;if ll_i<>0 thenmessageBox("错误信息","学号第"+string(ll_i)+"号重号!请改正。
")sle_id.setfocus()returnend ifls_name=trim(sle_name.text)ls_home=trim(sle_home.text)ls_tel=trim(sle_tel.text)//向数据库写入数据INSERT INTO "student"("stud_id","name","birthday","sex","nation","home","tel","party","resume")V ALUES(:ll_id,:ls_name,:ld_birthday,:ls_sex,:ls_nation,:ls_home,:ls_tel,:Is_party,:mle_resume.text);//数据写入数据库后,将输入控件全部置空sle_id.text=""sle_name.text=""sle_birthday.text=""mle_resume.text=""sle_home.text=""sle_tel.text=""sle_id.setfocus()//将光标放到“学号”输入栏5.关联窗口W_studentinput到应用程序中1)建立应用程序到数据库的连接。