C#窗體簡單實現登陸及學生管理功能
首先我們建立一個user類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace StudentManage
{
class User
{
string userName;
public string UserName
{
get { return userName; }
set { userName = value; }
}
string pwd;
public string Pwd
{
get { return pwd; }
set { pwd = value; }
}
string sex;
public string Sex
{
get { return sex; }
set { sex = value; }
}
int age;
public int Age
{
get { return age; }
set { age = value; }
}
}
}
接著我們還需要一個學生類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace StudentManage
{
class Student
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string sex;
public string Sex
{
get { return sex; }
set { sex = value; }
}
private string age;
public string Age
{
get { return age; }
set { age = value; }
}
private int grade;
public int Grade
{
get { return grade; }
set { grade = value; }
}
private Image touxiang;
public Image Touxiang
{
get { return touxiang; }
set { touxiang = value; }
}
}
}
設計一下登陸介面
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace StudentManage
{
public partial class CheckIn : Form
{
public CheckIn()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string name = tbxName.Text;
string pwd = tbxPwd.Text;
foreach (User item in listUser)
{
if (name!="")
{
if (pwd!="")
{
if (item.UserName==name)
{
if (item.Pwd==pwd)
{
MessageBox.Show("登入成功!");
StudentManage_Main main = new StudentManage_Main();
main.Show();
this.Hide();
}
else
{
MessageBox.Show("密碼錯誤!");
}
}
else
{
MessageBox.Show("使用者名稱錯誤!");
}
}
else
{
MessageBox.Show("密碼不能為空!");
}
}
else
{
MessageBox.Show("使用者名稱不能為空!");
}
}
}
List<User> listUser = new List<User>();
private void CheckIn_Load(object sender, EventArgs e)
{
User user1 = new User();
user1.UserName = "admin";
user1.Pwd = "123";
user1.Age = 24;
user1.Sex = "男";
listUser.Add(user1);
}
}
}
設計介面:
設計管理介面:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace StudentManage
{
public partial class StudentManage_Main : Form
{
public StudentManage_Main()
{
InitializeComponent();
foreach (ListViewGroup item in listView1.Groups)
{
cbmboxGrade.Items.Add(item.Header);
}
//預設下拉列表顯示第一條資料
cbmboxGrade.SelectedIndex = 0;
//預設圖片顯示第一張圖片
pictureBox1.Image = imageList2.Images[0];
}
int imNum;//圖片在圖片集合中的索引
int index;
List<Student> list = new List<Student>();//定義一個學生泛型
public void treeLoad()//載入樹形列表的方法
{
foreach (ListViewGroup item in listView1.Groups)//遍歷列表中的組顯示在樹形表中
{
//string header= listView1.Groups[stu.Grade].Header;
treeView1.Nodes.Add(item.Header);//依次將列表中組的文字加到樹形表的節點上
}
foreach (Student item1 in list)//遍歷學生泛型
{
if (listView1.Groups[item1.Grade].Header == treeView1.Nodes[item1.Grade].Text)//如果學生的名稱和樹形標的名稱相同就將該學生加在樹形標的孜節點上
{
treeView1.Nodes[item1.Grade].Nodes.Add(item1.Name);
}
}
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
//例項化一個學生,將學生資訊加到列表中和學生泛型中
Student stu = new Student();
stu.Name = tbxName.Text;
if (radioButton1.Checked==true)
{
stu.Sex = radioButton1.Text;
}
else
{
stu.Sex = radioButton2.Text;
}
stu.Grade = cbmboxGrade.SelectedIndex;
stu.Age = tbxAge.Text;
stu.Touxiang = pictureBox1.Image;
ListViewItem lvw = new ListViewItem();
lvw.Text = stu.Name; ;
lvw.ImageIndex = imNum;
lvw.SubItems.Add(stu.Sex);
lvw.SubItems.Add(stu.Age);
lvw.Group = listView1.Groups[stu.Grade];
listView1.Items.Add(lvw);
list.Add(stu);
treeView1.Nodes.Clear();
treeLoad();
}
private void button2_Click(object sender, EventArgs e)
{
//通過按鈕控制圖片顯示上一張
imNum--;
if (imNum == -1)
{
imNum = imageList2.Images.Count - 1;
}
pictureBox1.Image = imageList2.Images[imNum];
}
private void button3_Click(object sender, EventArgs e)
{
//通過按鈕控制圖片顯示下一張
imNum++;
if (imNum == imageList2.Images.Count)
{
imNum = 0;
}
pictureBox1.Image = imageList2.Images[imNum];
}
private void listView1_Resize(object sender, EventArgs e)
{
//定義列表寬度
listView1.Columns[0].Width = (int)(0.3 * listView1.Width);
listView1.Columns[1].Width = (int)(0.3 * listView1.Width);
listView1.Columns[2].Width = (int)(0.3 * listView1.Width);
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
//自定義新增圖片
OpenFileDialog op = new OpenFileDialog();
op.InitialDirectory = "d:\\";
op.Filter = "圖片(*.jpg;*.bmp;*.png;*.jpeg)|*.jpg;*.bmp;*.png;*.jpeg";
op.FilterIndex = 1;
op.RestoreDirectory = true;
if (op.ShowDialog() == DialogResult.OK)
{
string fileName = op.FileName;
//image是所有圖片的父類;還是一個抽象類
Image img = new Bitmap(fileName);
imageList2.Images.Add(img);
imageList1.Images.Add(img);
imNum = imageList2.Images.Count - 1;
pictureBox1.Image= imageList2.Images[imNum];
}
}
private void button4_Click(object sender, EventArgs e)
{
//例項化一個學生,將該學生資訊賦給列表中的學生
Student stu=new Student();
stu.Name= tbxName.Text;
if (radioButton1.Checked)
{
stu.Sex = radioButton1.Text;
}
else
{
stu.Sex = radioButton2.Text;
}
stu.Age = tbxAge.Text;
stu.Grade = cbmboxGrade.SelectedIndex;
stu.Touxiang = pictureBox1.Image;
listView1.Items[index].Text = stu.Name;
listView1.Items[index].ImageIndex = imNum;
listView1.Items[index].Group = listView1.Groups[stu.Grade];
listView1.Items[index].SubItems[1].Text = stu.Sex;
listView1.Items[index].SubItems[2].Text = stu.Age;
MessageBox.Show("修改成功!");
}
private void 刪除ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
//刪除操作,在操作前要做提示,以防止誤操作
DialogResult dr =
MessageBox.Show("確定刪除?", "提示", MessageBoxButtons.YesNo);
if (dr != DialogResult.Yes)
{
return;
}
foreach (ListViewItem item in listView1.SelectedItems)//將選中的項依次刪除
{
int itIndex= listView1.Items.IndexOf(item);
listView1.Items.Remove(item);
list.RemoveAt(itIndex);
}
MessageBox.Show("刪除成功!");
}
}
private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
{
//將選中的項的資訊填充到學生資訊中
ListViewItem lvw = listView1.SelectedItems[0];
this.index = lvw.Index;
if (lvw.SubItems[1].Text == radioButton1.Text)
{
radioButton1.Checked = true;
}
if (lvw.SubItems[1].Text == radioButton2.Text)
{
radioButton2.Checked = true;
}
tbxName.Text = lvw.Text;
tbxAge.Text = lvw.SubItems[2].Text;
cbmboxGrade.SelectedItem = lvw.Group.Header;
pictureBox1.Image = imageList2.Images[lvw.ImageIndex];
}
private void 大圖ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.LargeIcon;
}
private void 小圖ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.SmallIcon;
}
private void 列表ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.List;
}
private void 平鋪ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.Tile;
}
private void 詳細資訊ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.Details;
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnAction_Click(object sender, EventArgs e)
{
Application.Exit();//關閉該程式
}
private void btnCheckInAgion_Click(object sender, EventArgs e)
{
CheckIn ci = new CheckIn();
ci.Show();//跳轉到第二個介面
this.Hide();//隱藏當前介面
}
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
listView1.Items.Clear();
//獲取學生的班級
string grade = treeView1.SelectedNode.Text ;//獲取樹節點中的文字
foreach (Student item in list)
{
string stuGrade=listView1.Groups[item.Grade].Header;
if (stuGrade==grade)//如果學生的班級和樹節點中的文字相同,就把該節點的內容加到列表中
{
//ListViewGroup lvp=new ListViewGroup();
//lvp.Header=grade;
//listView1.Groups.Add(lvp);
ListViewItem lvt=new ListViewItem();
lvt.Text=item.Name;
listView1.Items.Add(lvt);
lvt.Group = listView1.Groups[item.Grade];
lvt.SubItems.Add(item.Sex);
lvt.SubItems.Add(item.Age);
listView1.Items.Add(lvt);
}
}
}
}
}
設計介面: