⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form_xyxk.cs

📁 一个很简单的考试系统。实用性很强啊!数据库在里面
💻 CS
📖 第 1 页 / 共 2 页
字号:
			this.lst_xyxk.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lst_xyxk_MouseDown);
			this.lst_xyxk.DoubleClick += new System.EventHandler(this.lst_xyxk_DoubleClick);
			this.lst_xyxk.SelectedIndexChanged += new System.EventHandler(this.lst_xyxk_SelectedIndexChanged);
			// 
			// Form_xyxk
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
			this.ClientSize = new System.Drawing.Size(792, 573);
			this.Controls.Add(this.btn_view);
			this.Controls.Add(this.btn_commit);
			this.Controls.Add(this.btn_delall);
			this.Controls.Add(this.btn_addall);
			this.Controls.Add(this.btn_del);
			this.Controls.Add(this.btn_add);
			this.Controls.Add(this.lst_xkxy);
			this.Controls.Add(this.lst_xyxk);
			this.Controls.Add(this.lbl_tjkc);
			this.Controls.Add(this.lbl_kcmc);
			this.Controls.Add(this.cbo_yxfx);
			this.Controls.Add(this.label1);
			this.Controls.Add(this.lbl_wxkxy);
			this.Controls.Add(this.lbl_yxkxy);
			this.Controls.Add(this.cbo_wxkxy);
			this.Controls.Add(this.cbo_yxkxy);
			this.Controls.Add(this.cbo_zyk);
			this.Controls.Add(this.lbl_zyk);
			this.Controls.Add(this.Grd_xyxk);
			this.Name = "Form_xyxk";
			this.Text = "学员选课";
			this.Load += new System.EventHandler(this.Form_xyxk_Load);
			((System.ComponentModel.ISupportInitialize)(this.Grd_xyxk)).EndInit();
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form_xyxk());
		}

		private void Form_xyxk_Load(object sender, System.EventArgs e)
		{
			ToolTip tolTip = new ToolTip();

			lst_xkxy.Items.Clear();
			lst_xyxk.Items.Clear();
			Grd_xyxk.DataSource = null;

			opDtset.addDateToDtSet( dbAccess.sel_Yxfx, dbAccess.tab_Subject, dbAccess.subNo, dbAccess.subName );
			///调用将所有的数据从数据库中读入DataSet的subject表中的方法.+1次重载
			opDtset.addDateToDtSet( dbAccess.sel_Zyk, dbAccess.tab_Spec, dbAccess.speNo, 
				                    dbAccess.subNo, dbAccess.speName );
			///调用将所有的数据从数据库中读入DataSet的speciality表中的方法.+2次重载
			opDtset.addDateToDtSet( dbAccess.sel_Kls, dbAccess.tab_Kls, dbAccess.couNo, dbAccess.speNo );
			///调用将所有的数据从数据库中读入DataSet的knowledgeSystem表中的方法.+1次重载
			opDtset.addDateToDtSet( dbAccess.sel_Cour, dbAccess.tab_Cour, dbAccess.couNo, dbAccess.couName );
			///调用将所有的数据从数据库中读入DataSet的Course表中的方法.+1次重载
			opDtset.sheTable( cbo_yxfx, dbAccess.tab_Subject, dbAccess.subName );
			///调用将所有字段从DataSet表中添加进ComboBox中的方法
			
			tolTip.SetToolTip( lst_xyxk, "单击选中课程,双击可添加此课程!" );
			tolTip.SetToolTip( lst_xkxy, "单击选中课程,双击可删除此课程!" );

			format_Btnfalse( );///格式化按钮的状态
		}

		private void chickBtn( )
		{			///按照两个列表框中不同的项目数量,决定按钮的显示状态及焦点的设置,参数规则同上个方法
			if ( common.lstCount[0] != 0 && common.lstCount[1] == 0 )
			{
				state_Btnadd();
				lst_xyxk.SetSelected( 0, true );
			}
			else if ( common.lstCount[0] == 0 && common.lstCount[1] != 0 )
			{
				state_Btndel();
				lst_xkxy.SetSelected( 0, true );
			}
			else if ( common.lstCount[1] == 0 && common.lstCount[1] == 0 )
			{
				format_Btnfalse();
			}
			else
			{   ///最后一个条件,肯定是两个列表框中均有记录,因此,将焦点放在"课程名称"列表框的第一条记录上
				unformat_Btnfalse();
				int xkxyIndex = lst_xkxy.SelectedIndex;
				if ( xkxyIndex != -1 )
					lst_xkxy.SetSelected( xkxyIndex, false );
				lst_xyxk.SetSelected( 0, true );
				
			}   ///虽然此方法亦可放在common类中,但每次调用却需将所有按钮作为参数传递,因此,从性能上考虑,放在了此处
		}

		private void format_Btnfalse()
		{
			btn_add.Enabled = false;
			btn_addall.Enabled = false;
			btn_del.Enabled = false;
			btn_delall.Enabled = false;
			btn_commit.Enabled = false;
		}

		private void unformat_Btnfalse()
		{
			btn_add.Enabled = true;
			btn_addall.Enabled = true;
			btn_del.Enabled = true;
			btn_delall.Enabled = true;
			btn_commit.Enabled = true;
		}

		private void state_Btnadd()
		{
			btn_add.Enabled = true;
			btn_addall.Enabled = true;
			btn_del.Enabled = false;
			btn_delall.Enabled = false;
			btn_commit.Enabled = false;
		}

		private void state_Btndel()
		{
			btn_add.Enabled = false;
			btn_addall.Enabled = false;
			btn_del.Enabled = true;
			btn_delall.Enabled = true;
			btn_commit.Enabled = true;
		}

		private void btnFoucs()
		{
			if ( common.lstCount[0] == 0 )
				btn_del.Focus();
			else if ( common.lstCount[1] == 0 )
				btn_add.Focus();
			else if ( common.lstCount[0] != 0 && common.lstCount[1] != 0 && lst_xyxk.Focus() == true )
				btn_add.Focus();
			else if ( common.lstCount[0] != 0 && common.lstCount[1] != 0 && lst_xkxy.Focus() == true )
				btn_del.Focus();
		}
		
		private void cbo_yxfx_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			com.clear_AllCbo( cbo_zyk, cbo_yxkxy, cbo_wxkxy );
			lst_xyxk.Items.Clear();

			int itemNo = opDtset.selCol( cbo_yxfx, dbAccess.tab_Subject, dbAccess.subNo );
			///调用查找与当前ComboBox所显示的字段相对应的No字段的方法,并将其返回值作为下一步查询的条件
			opDtset.sheTable( cbo_zyk, dbAccess.tab_Spec, dbAccess.speName, dbAccess.subNo, itemNo );
			///以与cbo_yxfx中显示的字段相对应的No字段为条件,查找表Spec中的Name字段并将其值赋给cbo_zyk。+2次重载
			
			com.chickListItemCount( lst_xyxk, lst_xkxy );
			chickBtn( );
			btnFoucs();

		}

		private void cbo_zyk_SelectedIndexChanged(object sender, System.EventArgs e)
		{                               
			addLstXyxk();                      ///此方法将会在"全部删除"按钮中使用
		}

		private void addLstXyxk()               ///将与该下拉框中显示的专业名称相对应的课程显示在"课程名称"列表框中
		{
			lst_xyxk.Items.Clear();
            ///考虑到在"全部删除"中使用此方法时,要以"专业名称"下拉框中当前字段为条件显示课程,故使用selCol的+2次重载的方法
			int zyNo = opDtset.selCol( cbo_zyk, dbAccess.tab_Spec, dbAccess.speNo, dbAccess.speName );
			aryList = opDtset.addAry( dbAccess.tab_Kls, dbAccess.speNo, dbAccess.couNo, zyNo);
			opDtset.addList( lst_xyxk, lst_xkxy, dbAccess.tab_Cour, dbAccess.couNo, dbAccess.couName );

			com.chickListItemCount( lst_xyxk, lst_xkxy );
			chickBtn( );
			btnFoucs();
		}

		private void lst_xyxk_DoubleClick(object sender, System.EventArgs e)
		{                          
			addLst();        ///与添加按钮执行相同的操作
		}

		private void addLst()        ///在无异常发生的情况下,将"课程名称"列表框中所选中的字段添加进"添加课程"列表框中
		{
			com.lst_Insert( lst_xyxk, lst_xkxy );

			com.chickListItemCount( lst_xyxk, lst_xkxy );
			chickBtn();
			btnFoucs();
		}

		private void lst_xkxy_DoubleClick(object sender, System.EventArgs e)
		{   
			delLst();             ///与删除按钮执行相同的操作
		}

		private void delLst()
		{       ///在无异常发生的情况下,先删除选中的课程,再清空"课程名称"列表框,最后显示对应于当前的"专业名称"的课程
			com.delListItem( lst_xkxy );
			lst_xyxk.Items.Clear();
			opDtset.addList( lst_xyxk, lst_xkxy, dbAccess.tab_Cour, dbAccess.couNo, dbAccess.couName );
			///由于当前全局变量的数组中存放的就是对应于当前的"专业名称"的课程,因此不必再次判断课程名称与专业名称是否匹配
			
			com.chickListItemCount( lst_xyxk, lst_xkxy );
			chickBtn( );
			btnFoucs();
		}

		private void lst_xyxk_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			com.setLstFoucs( lst_xyxk, lst_xkxy, btn_add, btn_del );
		}

		private void lst_xkxy_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			com.setLstFoucs( lst_xkxy, lst_xyxk, btn_add, btn_del );	
		}

		private void btn_add_Click(object sender, System.EventArgs e)
		{
			addLst();               ///与双击"课程名称"列表框执行相同的操作
		}

		private void btn_del_Click(object sender, System.EventArgs e)
		{
			delLst();              ///与双击"添加课程"列表框执行相同的操作
		}

		private void btn_addall_Click(object sender, System.EventArgs e)
		{                                              ///将"课程名称"列表框中所有记录一次性添加进"添加课程"列表框中
			for ( int i = 0; i < common.lstCount[0]; i++ )
				lst_xkxy.Items.Add( lst_xyxk.Items[i].ToString() );
			lst_xyxk.Items.Clear();
            
			com.chickListItemCount( lst_xyxk, lst_xkxy );
			chickBtn();
			btnFoucs();
		}

		private void btn_delall_Click(object sender, System.EventArgs e)
		{
			lst_xkxy.Items.Clear();
			addLstXyxk();                     ///与"专业名称"下拉框的Change事件使用相同的方法
			btnFoucs();
		}

		

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -