第24讲 窗体间的数据传递实例.ppt教学目标
掌握添加窗体属性的方法
掌握重载窗体构造函数的方法
掌握将一个窗体的当前实例传送到另一个窗体中的设计方法
掌握通过窗体实例访问窗体属性的方法
完成窗体间的数据传递实例的程序编写
1
教学内容
一、主窗体设计
二、登录窗体设计
三、为主窗体添加属性
四、将当前窗体的实例传送到另一个窗体中
2
窗体间的数据传递实例
这里通过一个实例来说明如何实现窗体间的数据传递。实例的运行次序是这样的:项目首先启动一个主窗体,主窗体的主菜单中有4个菜单项,其中【登录】和【退出】两个菜单项是可用的,另外两个菜单项【数据浏览】和【数据维护】不可用。用户单击主窗体的菜单项【登录】来启动登录窗体,登录成功后,主窗体从登录窗体获取登录者的姓名和权限代号,根据这个权限代号来决定开放哪些菜单项给他使用,并在主窗体中显示登录者的姓名。若某用户登录后被允许使用“数据浏览”功能,就可以单击【数据浏览】菜单项打开数据浏览窗体,此时在数据浏览窗体中能够显示登录者的姓名。根据这个功能要求,登录者资料的传递路线为:登录窗体→主窗体→数据浏览窗体。
3
一、主窗体设计(1/3)
1、主窗体的功能与用户界面
主窗体是本项目的启动窗体,当主窗体启动后,用户通过【登录】菜单项来启动登录窗体。用户成功登录后,用户的资料被传送到主窗体中,主窗体根据用户的权限代号来决定分配哪些功能菜单项给他使用。主窗体的用户界面如下图。
4
一、主窗体设计(2/3)
2、主窗体的程序代码(1/2)
⑴、为主窗体增加数据字段
private string userName;
⑵、窗体加载
窗体加载时,使菜单项“数据浏览”和“数据维护”不可用。
private void Form1_Load(object sender, e)
{
//使菜单项“数据浏览”和“数据维护”不可用
=false;
=false;
}
5
一、主窗体设计(3/3)
2、主窗体的程序代码(2/2)
⑶、【登录】菜单项单击
单击【登录】菜单项时,创建登录窗体的实例并显示它。若登录成功,依据登录用户的权限代号,确定他有权使用哪个菜单的功能。,是登录窗体特别为了向调用窗体(即主窗体)传送登录者的姓名和权限代号而添加的,稍后会看到这个设计方法。
private void menuItemLogin_Click(object sender, e)
{
//创建登录窗体实例并显示
FormLogin fml=new FormLogin();
DialogResult dr=();
//若登录成功
if(dr==)
{
//获取并显示登录者的姓名
userName=;
="欢迎"+()+"登陆到本系统";
//根据用户的权限代号确定菜单项的可用性
switch(())
{
case "1":
=true;
=true;
break;
case "2":
=true;
=false;
break;
}
}
}
6
二、登录窗体设计(1/3)
1、为登录窗体添加属性
⑴、为登录窗体类增加数据字段
private string name;
private string jurisdiction;
这两个私有字段一个保存登录者的姓名,一个保存登录者的权限代号。其作用是将这两个数据传送到接下来定义的两个属性中去。
⑵、为登录窗体类添加属性
为登录窗体添加两个string类型的公有属性UserName和UserJurisdiction,一个用于获取登录者的姓名,另一个获取登录者的权限代号。因为在使用这两个属性时只需读取,所以在程序代码中只需要编写get语句块。
public string UserName
{
get
{
return name;
}
}
public string UserJurisdiction
{
get
{
return jurisdiction;
}
}
7
第24讲 窗体间的数据传递实例 来自淘豆网m.daumloan.com转载请标明出处.