DataUpdateMenuItem.Enabled = false; DataDeleteMenuItem.Enabled = false;
}
//打开系统主要功能锁定状态的方法
private void MenuStatusOn() {
DataQueryMenuItem.Enabled = true; DataAddMenuItem.Enabled = true; DataUpdateMenuItem.Enabled = true; DataDeleteMenuItem.Enabled = true;
}
然后,双击MainForm窗体类的Load事件,在该事件中添加如下代码: MenuStatusOFF(); (5)“注销”功能的实现
功能:将系统主要功能设置为锁定状态,以方便其他用户登陆使用。 具体操作:选中“注销”菜单,在注销菜单的Click事件中添加如下代码。 MenuStatusOFF(); (6)“退出”功能的实现
当系统退出时,需要提示是否真的退出等提示选项等,实现该功能在MainForm窗体类中进行如下操作:
① 在“退出”菜单的Click事件中添加如下代码: this.Close();
② 在MainForm窗体类的FormClosing事件中添加如下代码:
DialogResult mgr = MessageBox.Show(\您确定要退出学生信息管理系统吗?\,
\信息提示\,
MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
if (mgr == DialogResult.Cancel)
e.Cancel = true;
至此,系统主界面以及菜单系统的主要设计任务已经完毕。
2.3 登录窗体的设计与功能实现
(1)功能描述
该步骤要实现两个功能:
C/S结构项目实训(C#语言版)
11
1、点击“系统管理”主菜单下“系统登录”功能选项,打开“系统登陆”窗体;在该窗体处于打开状态时,我们不能操作主界面包括系统菜单的所有功能,除非关闭该窗体以后,才能继续操作;
2、系统启动完成后,系统主要功能处于不可用状态,当登陆成功后,打开功能锁定。 在本案例中,解决第一个问题的方法是使用模式对话框,解决第二个问题的方法是在登陆窗体中设置一个“系统菜单状态”变量(SysMenuStatus),通过该变量的真假来判断是否打开系统的功能锁定。
(2)流程图
针对功能描述,我们绘制系统登录功能的操作流程图如图2.3-1所示。
主菜单:系统管理 启动主窗体 提示登录成功信息,打开子菜单:系统登陆功能菜单锁定并结束 成功 输入用户名和密码 登陆 数据验证 失败信息提示 图2.3-1:“系统登录”功能实现流程图
(3)数据库设计
本窗体主要功能的实现所涉及的用户登陆合法性验证采用带返回值的存储过程来实现。具体操作过程为:在SQLServer查询分析器中输入以下代码后并运行,创建存储过程LoginJudge,用于判断登陆用户的合法性验证。
Use stuInfoManage
If exists(select * from sysobjects where name = ‘LoginJudge’ and type = ‘P’)
Drop procedure LoginJudge
12
C/S结构项目实训(C#语言版)
go
create procedure LoginJudge ( ) as
if not exists(select * from admin where userName = @userName)
return 1 -- 表示不存在该用户 @userName nvarchar(100), @passWord varchar(100)
else begin
if not exists(select * from admin where userName = @userName and
[password]=@passWord )
return 2 --表示密码错误
else
return 3 --表示登陆成功
end GO
代码输入完毕后点击运行按钮,生成LoginJudge存储过程。 (4)界面设计
首先,在stuInfoManage项目中添加一个Windows窗体,将其窗体类名改为:SystemLoginForm,设置该窗体的属性Text为“系统登录”,并添加一个公共数据成员:
public Boolean SysMenuStatus = false;
其次,在该“系统登录”窗体上添加必要控件并设置相关属性,具体设置参照表格14.2.3-1说明。 控件类型 Lable1 Lable2 Lable3 采用系统默认 采用系统默认 采用系统默认 命名 属性 Text:系统登陆 Text:用户名: Text:密码: C/S结构项目实训(C#语言版) 13
ComboBox TextBox Button Button Button UserNameComboBox PasswordTextBox LoginButton ResetButton ExitButton 无 PasswordChar:* Text:登陆 Text:重置 Text:退出 表格14.2.3-1:“系统登录”窗体上面控件的主要属性设置表格
其他显示样式以及效果可以根据实际情况具体调节,例如字体的大小和颜色等。具体设计效果可以参照图2.3-2。
图2.3-2:“系统登录”窗体设计效果图
(5)代码实现
5.1 菜单功能调用的实现
首先,在系统主界面类MainForm类中添加一个私有数据成员,该成员为系统登陆窗体的一个实例,即在MainForm类中添加如下代码:
SystemLoginForm LoginForm = new SystemLoginForm();
其次,双击“系统登陆”菜单,在“系统登陆”菜单的Click事件中添加以下代码: //判断该对象是否存在,如果不存在,就创建它 if (LoginForm.IsDisposed)
C/S结构项目实训(C#语言版)
14
{
LoginForm = new SystemLoginForm(); }
//以模式对话框的形式显示LoginForm窗体 LoginForm.ShowDialog();
//登陆窗体运行完毕后,判断登陆窗体的属性SysMenuStatus的取值
//如果登陆窗体中系统菜单状态变量的值为真,打开系统菜单主要功能的锁定状态 if (LoginForm.SysMenuStatus == true)
{
MenuStatusOn(); } 至此,登录窗体的功能调用已经实现。 5.2 “登陆窗体”相应功能的实现 ① “用户名”组合框的数据初始化
系统界面启动后,自动加载数据库中合法的管理员的用户名,在用户名组合框中列示以便选择,当然也允许用户自行输入个人的用户名。
实现该功能需要在SystemLoginForm窗体类的Load事件中添加以下代码,为UserNameComboBox数据进行初始化操作:
string sqlstr = \; DataSet userNameDS =
SqlHelper.ExecuteDataset(SqlHelper.ConnectionString,CommandType.Text,sqlstr); UserNameComboBox.DataSource = userNameDS.Tables[0];
UserNameComboBox.DisplayMember = \;
② “系统登陆”窗体的初始化
我们在启动系统登录窗体后,要使各个控件处于数据选择或输入状态。要实现该功能,首先,我们需要在SystemLoginForm窗体类中添加私有方法用于控件初始状态设定:
private void ComponentReset()
{
UserNameComboBox.Text = \; PasswordTextBox.Text = \; UserNameComboBox.Focus();
}
然后在SystemLoginForm窗体的载入事件中添加该方法的调用: ComponentReset(); ③ “重置”按钮功能的实现
C/S结构项目实训(C#语言版) 15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库项目实训-学生信息管理系统(3)在线全文阅读。
相关推荐: