按钮事件的统一处理
文章目錄
- 1 按鈕事件的統(tǒng)一處理
- 1.1 項(xiàng)目UI及所需實(shí)現(xiàn)的功能簡(jiǎn)要介紹
- 1.2 功能實(shí)現(xiàn)
1 按鈕事件的統(tǒng)一處理
1.1 項(xiàng)目UI及所需實(shí)現(xiàn)的功能簡(jiǎn)要介紹
項(xiàng)目UI如下:
所需實(shí)現(xiàn)的功能:
1.2 功能實(shí)現(xiàn)
首先來(lái)看下實(shí)體類(lèi)的代碼,非常簡(jiǎn)單:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace xiketang.com.WinformBase {/// <summary>/// 課程實(shí)體類(lèi)/// </summary>public class Course{public Course() { }public Course(int courseId, string courseName, int classHour, string teacher){this.CourseId = courseId;this.CourseName = courseName;this.ClassHour = classHour;this.Teacher = teacher;}public int CourseId { get; set; }public string CourseName { get; set; }public int ClassHour { get; set; }//課時(shí)public string Teacher { get; set; }//主講老師} }窗體相關(guān)代碼如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace xiketang.com.WinformBase {public partial class FrmEventApp : Form{//用來(lái)封裝課程對(duì)象的容器private List<Course> courseList = new List<Course>();public FrmEventApp(){InitializeComponent();//多個(gè)按鈕響應(yīng)同一個(gè)事件,在此做事件關(guān)聯(lián)//this.btn01.Click += new System.EventHandler(this.btn_Click);//this.btn02.Click += new System.EventHandler(this.btn_Click);//this.btn03.Click += new System.EventHandler(this.btn_Click);//this.btn04.Click += new System.EventHandler(this.btn_Click);//this.btn05.Click += new System.EventHandler(this.btn_Click);//this.btn06.Click += new System.EventHandler(this.btn_Click);//this.btn07.Click += new System.EventHandler(this.btn_Click);//this.btn08.Click += new System.EventHandler(this.btn_Click);//this.btn09.Click += new System.EventHandler(this.btn_Click);//this.btn10.Click += new System.EventHandler(this.btn_Click);//this.btn11.Click += new System.EventHandler(this.btn_Click);//this.btn12.Click += new System.EventHandler(this.btn_Click);//以上方法,如果你這么寫(xiě)程序,會(huì)被別人認(rèn)為你什么都不懂!foreach (Control item in this.Controls){//if (item is Button)//通過(guò)控件類(lèi)型過(guò)濾我們不需要的控件//{// Button btn = item as Button;// if (btn.Tag.ToString() != "Save")//過(guò)濾我們不需要的按鈕,請(qǐng)大家特別注意Tag的使用// {// btn.Click += new System.EventHandler(this.btn_Click);// }//}if (item is Button && item.Tag.ToString() != "Save"){item.Click += new System.EventHandler(this.btn_Click);}}}//事件集中處理方法private void btn_Click(object sender, EventArgs e){Button btn = sender as Button;//將當(dāng)前按鈕Tag屬性中封裝的課程信息,通過(guò)字符串分割得到string[] info = btn.Tag.ToString().Split(',');//將當(dāng)前課程信息封裝到課程對(duì)象,并將課程對(duì)象封裝到集合中this.courseList.Add(new Course{CourseName = btn.Text,CourseId = Convert.ToInt32(info[0]),ClassHour = Convert.ToInt32(info[1])});//改變當(dāng)前按鈕的背景色btn.BackColor = Color.Green;//請(qǐng)大家思考:如果避免用戶(hù)多次添加同一個(gè)課程按鈕,而導(dǎo)致多次添加的問(wèn)題...}//保存所選課private void btnSave_Click(object sender, EventArgs e){//實(shí)際開(kāi)發(fā)中,保存可以到數(shù)據(jù)庫(kù)、文件...//測(cè)試看看所選擇的課程foreach (var item in this.courseList){Console.WriteLine(item.CourseId+"\t"+item.ClassHour+"\t"+item.CourseName);}}} }參考資料:
總結(jié)
- 上一篇: 重装电脑系统怎么做 电脑重装系统操作指南
- 下一篇: 无边框窗体移动的方法