精华内容
下载资源
问答
  • Winform之学生信息管理系统各种子窗体(一)

    万次阅读 多人点赞 2015-05-06 20:51:25
    先来补充一下学生信息管理系统登录窗体,在完成的过程中总是遇到各种各样的问题,对于登录窗体的设计还是存在着一些弊端,那就是需要登录学生信息管理系统时如果输入的数据出错不必一个个删除,就需要在窗体上再添加...

            先来补充一下学生信息管理系统登录窗体,在完成的过程中总是遇到各种各样的问题,对于登录窗体的设计还是存在着一些弊端,那就是需要登录学生信息管理系统时如果输入的数据出错不必一个个删除,就需要在窗体上再添加一个清空写入数据的button控件,将其属性Text改为重置。还有一个与登录窗口设计的属性AcceptButton将其改为确定按钮的唯一名字(也就是button1),因此在按下回车键后我们也能登录到学生信息管理系统主页面相对应的CancelButton将其改为取消按钮的唯一名字(也就是button2),因此在按下退出键后也能退出登录窗口。

           需要在重置的button按钮控件添加的Click事件的代码为:

            <span style="font-size:18px;">private void button3_Click(object sender, EventArgs e)
            {
                textBox1.Text = "";
                textBox2.Text = "";
            }</span>

            完成改动后的登录窗口为:

     

           下面就来设计一些需要都用到的子窗体。

            一学生信息添加窗体

            学生信息添加窗体窗体主要是用来添加学生信息或者修改学生信息,输入学号、姓名、性别、出生日期、家庭住址、家庭电话和所在班级,点击“保存”按钮即可录入或者修改学生信息记录,点击“取消”按钮,退出学生信息添加窗体。这个窗体需要用到的控件有Label控件,TextBox控件,Button控件,Panel控件和ComboBox控件。在学生信息管理系统主页面中的菜单选项中找到学生管理,再次单击学生信息就会出现学生信息添加的窗口。

     

              二用户信息添加窗体

             用户信息添加窗体主要是实现登录用户的添加操作。该窗体中包含了用户名、密码、确认密码和用户权限这些信息。当点击“保存”按钮时,即可以将用户的这些信息添加到数据库中。点击“取消”按钮,可以退出用户信息添加窗体。这个窗体需要用到的控件有Label控件,TextBox控件,Button控件,Panel控件和ComboBox控件。在学生信息管理系统主页面中的菜单选项中找到系统管理,再次单击用户信息就会出现用户信息添加的窗口。

     

            三用户修改密码窗体

            用户修改密码窗体主要是实现用户修改密码的功能。该窗体中,可以通过输入用户名和原密码,然后输入新密码和确认新密码,来修改用户的登录密码。这个窗体需要用到的控件有Label控件,TextBox控件,Button控件,Panel控件。在学生信息管理系统主页面中的菜单选项中找到系统管理,再次单击用户修改密码就会出现用户修改密码添加的窗口。

     

            上述三个子窗体中的取消按钮都是一样的代码写入:

            <span style="font-size:18px;">private void button2_Click(object sender, EventArgs e)
            {
                Close();
            }</span>

           经过上述的改动和子窗体的添加后的完整的Form1(学生信息管理系统登录窗口)的代码为:

    <span style="font-size:18px;">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 WindowsForms
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                string str = textBox1.Text;//获取你在textBox1中输入的信息
                Form2 ad = new Form2(str);//创建一个学生信息管理系统主界面的对象
                ad.Show();//点击确定后进入学生信息管理系统主界面
                this.Hide();//单击确定后隐藏登录窗口
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Application.Exit();//点击取消退出整个程序
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                textBox1.Text = "";//这是清空你写入的用户名称
                textBox2.Text = "";//这是清空你写入的用户密码
            }
        }
    }</span></span>

             完整的Form2(学生信息管理系统主页面)的代码为:

    <span style="font-size:18px;"><span style="font-size:18px;">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 WindowsForms
    {
        public partial class Form2 : Form
        {
            public Form2(string s)
            {
                InitializeComponent();
                tssl_name.Text = s;//将登陆窗口textBox1输入的信息传递给状态栏Text属性
            }
    
            private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Application.Exit();//单击主菜单中的退出我们退出整个程序
            }
    
            private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
            {
    
            }
    
            private void toolStripButton1_Click(object sender, EventArgs e)
            {
                Children qq = new Children();//创建一个子窗体的实例
                qq.MdiParent = this;//要求子窗体的父窗体是MDI窗体
                qq.Show();
            }
    
            private void 学生信息ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Children1 c1 = new Children1();
                c1.MdiParent = this;
                c1.Show();
            }
    
            private void 用户信息ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Children2 c2 = new Children2();
                c2.MdiParent = this;
                c2.Show();
            }
    
            private void 用户密码修改ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Children3 c3 = new Children3();
                c3.MdiParent = this;
                c3.Show();
            }
        }
    }</span>

           完整的子窗体Children1(学生信息添加窗体)的代码为:

    <span style="font-size:18px;">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 WindowsForms
    {
        public partial class Children1 : Form
        {
            public Children1()
            {
                InitializeComponent();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Close();
            }
        }
    }</span>

              完整的子窗体Children2(用户信息添加窗体)的代码为:

    <span style="font-size:18px;">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 WindowsForms
    {
        public partial class Children2 : Form
        {
            public Children2()
            {
                InitializeComponent();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Close();
            }
    
            private void s(object sender, EventArgs e)
            {
            }
        }
    }</span>

                 完整的子窗体Children2(用户密码修改窗体)的代码为:

    <span style="font-size:18px;">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 WindowsForms
    {
        public partial class Children3 : Form
        {
            public Children3()
            {
                InitializeComponent();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Close();
            }
        }
    }</span>

                在登录学生信息管理系统主页面打开子窗体的界面为:

             在文件中找到你所编写的程序,打开exe运行学生信息管理系统,检验是否与自己设计想象的有什么不同,不同的话进行修改调试,直到与自己预想的结果相吻合就可以了。

     


     





     


     

     

     

     

     


     

     

    展开全文
  • 简单c#窗体程序:学生信息输入

    千次阅读 多人点赞 2019-05-27 18:02:51
     info = "学生信息是\r姓名:" + this.textBox1.Text + "\r性别:" + sex + "\r专业:" + major + "\r爱好有:";   foreach(string item in checkedListBox1.CheckedItems)//知识点  {  info += item + " "; ...

    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 WindowsFormsApp2
    {
        public partial class Form1 : Form
        {
            string sex, major;
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                listBox1.Items.Add("男");
                listBox1.Items.Add("女");
                comboBox1.Items.Add("计算机科学与技术");
                comboBox1.Items.Add("网络工程");
                comboBox1.Items.Add("软件工程");
                comboBox1.Items.Add("电子信息工程");
                checkedListBox1.Items.Add("登山");
                checkedListBox1.Items.Add("踢足球");
                checkedListBox1.Items.Add("看书");
                checkedListBox1.Items.Add("打篮球");
                this.listBox1.SelectedIndex = 0;
                this.comboBox1.SelectedIndex = 0;

            }

            private void button1_Click(object sender, EventArgs e)
            {
                string info = "";
                info = "学生信息是\r姓名:" + this.textBox1.Text + "\r性别:" + sex + "\r专业:" + major + "\r爱好有:";
                foreach(string item in checkedListBox1.CheckedItems)//知识点
                {
                    info += item + " ";
                }

                MessageBox.Show(info);

            }

            private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                sex = this.listBox1.Text;

            }

            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                major = this.comboBox1.Text;

            }

            private void button2_Click(object sender, EventArgs e)
            {
                this.listBox1.SelectedIndex = -1;
                this.comboBox1.SelectedIndex = -1;
                checkedListBox1.Items.Clear();
                checkedListBox1.Items.Add("登山");
                checkedListBox1.Items.Add("踢足球");
                checkedListBox1.Items.Add("看书");
                checkedListBox1.Items.Add("打篮球");

            }
        }
    }

    展开全文
  • 复选框check的Value属性共有三种bai状态 0——未选中du 1——选中 2——不可选。... 另外,复选框的状态也可作为if语句的判断条件,编程实现选中和未选中两种状态所触发的事件。 if check.value 默认check.value为布...

    复选框check的Value属性

    复选框check的Value属性共有三种状态:0未选中,1选中, 2不可选。Value属性可在代码中进行设置,也可以在运行中通过点击控件设置,选中为1,再次点击变为未选中0,但是仅通过check控件不能将Value属性设为2。

    复选框的状态也可作为if语句的判断条件,编程实现选中和未选中两种状态所触发的事件。

    if check.value
    默认check.value为布尔值.如果check.value等于-1.这个条件也会成立.因为在VB中.0为假,非0为真.

     

    Dim dd(4) As Boolean

                         

    Dim dd(4) As Boolean,代表四种查询情况,并定义他为布尔型。

     

    组合SQL查询

    判断用户名有两层判断,一个是判断用户名是否为空,一个是判断用户名是否存在。这就用到了If函数的嵌套,需要多层IF函数的判断。

     txtSQL = "select * from student_info where " '组合SQL语句(下面会用到)
     
        If Check1(0).Value Then   '判断是否选择学号查询方式(if 嵌套)
            
            If Trim(txtSID.Text) = "" Then '判断输入学号是否为空
               
                MsgBox "学号不能为空", vbOKOnly + vbExclamation, "警告"
                txtSID.SetFocus
                Exit Sub
            Else
                
                If Not IsNumeric(Trim(txtSID.Text)) Then '判断输入学号是否为数字
                    MsgBox "请输入数字", vbOKOnly + vbExclamation, "警告"
                    Exit Sub
                    
                End If
                dd(0) = True
               
                txtSQL = txtSQL & "student_ID='" & Trim(txtSID.Text) & "'" '组合查询语句
            End If
        End If

    关于组合SQL语句,请参考https://blog.csdn.net/hdy14/article/details/77306007

     

    实时错误381 下标越界

    扩大下标范围选中myFlexGrid,右击属性如图:之前是6,我觉得够,但还是改为了8,问题依然没有解决。继续搜索找寻答案。最后是因为我将Rows设置为了Rows=1,这样后面的TextMatrix(.Rows - 1, 0)这里就会出现问题,Rows-1就等于0,出现溢出,但是这里我还有个问题,为什么不能直接写成TextMatrix(.Rows , 0),而非要-1呢?????

    With myflexgrid
            .Rows = 2
            .CellAlignment = 4
            .TextMatrix(1, 0) = "考试编号"
            .TextMatrix(1, 1) = "学号"
            .TextMatrix(1, 2) = "姓名"
            .TextMatrix(1, 3) = "班号"
            .TextMatrix(1, 4) = "课程名称"
            .TextMatrix(1, 5) = "分数"
            
            Do While Not mrc.EOF
                .Rows = .Rows + 1
                .CellAlignment = 4
                .TextMatrix(.Rows - 1, 0) = mrc.Fields(0)
                .TextMatrix(.Rows - 1, 1) = mrc.Fields(1)
                .TextMatrix(.Rows - 1, 2) = mrc.Fields(2)
                .TextMatrix(.Rows - 1, 3) = mrc.Fields(3)
                .TextMatrix(.Rows - 1, 4) = mrc.Fields(4)
                .TextMatrix(.Rows - 1, 5) = mrc.Fields(5)
                mrc.MoveNext
            Loop
            
        End With

     

    listAllcourse.ListIndex <> -1

     If listAllcourse.ListIndex <> -1 Then
           listSelectcourse.AddItem listAllcourse.List(listAllcourse.ListIndex)

    istAllcourse.ListIndex不等于1。在列表框中,如果有某项被选中,那么list.listindex就会返回它的位置(从0开始),而如果没有列表项被选中,list.listindex等于-1。这句的意思是如果有列表项被选中,那么就执行then后面的语句。这句话也可以写成:if listAllcourse.ListIndex >=0 then

    For i = 0 To listSelectcourse.ListCount - 1  

    listbox控件 列表索引是从0开始,List.listcount 是列表项目的数量,循环所有列表项目,从0开始到 List.listcount-1项。

    展开全文
  • 通过简单工厂,根据类型创建对象 30 Person per = PersonFactory.GetPerson( " Student " ); 31 per.Id = node[ " Id " ].InnerText; 32 per.Name = node[ " Name " ].InnerText; 33 per.Sex = (Sex)Enum....

     

    1. 仔细观察如下窗口及world.xml文件:

     

     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <World>
     3     <Person>
     4         <Id>101</Id>
     5         <Name>刘德华</Name>
     6         <Sex></Sex>
     7         <Age>45</Age>
     8     </Person>
     9     <Person>
    10         <Id>102</Id>
    11         <Name>章子怡</Name>
    12         <Sex></Sex>
    13         <Age>35</Age>
    14     </Person>
    15     <Student>
    16         <Id>201</Id>
    17         <Name>周杰伦</Name>
    18         <Sex></Sex>
    19         <Age>25</Age>
    20         <Favor>双节棍</Favor>
    21     </Student>
    22     <Student>
    23         <Id>202</Id>
    24         <Name>梅梅</Name>
    25         <Sex></Sex>
    26         <Age>17</Age>
    27         <Favor>冰淇淋</Favor>
    28     </Student>
    29     <Teacher>
    30         <Id>301</Id>
    31         <Name>刘老根</Name>
    32         <Sex></Sex>
    33         <Age>60</Age>
    34         <Year>30</Year>
    35     </Teacher>
    36     <Teacher>
    37         <Id>302</Id>
    38         <Name>药匣子</Name>
    39         <Sex></Sex>
    40         <Age>55</Age>
    41         <Year>25</Year>
    42     </Teacher>
    43 </World>

     

    1. 完成以下功能:

    2.1.      设计性别枚举Sex。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace FrmPerson
     7 {
     8     #region 性别枚举
     9 
    10     /// <summary>
    11     /// 性别枚举
    12     /// </summary>
    13     public enum Sex
    14     {
    15         男, 女
    16     } 
    17     #endregion
    18 }

     

    2.2.      设计人类Person。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace FrmPerson
     7 {
     8     /// <summary>
     9     /// 人类(抽象类)
    10     /// </summary>
    11     public abstract class Person
    12     {
    13 
    14         #region 属性
    15 
    16         /// <summary>
    17         /// 编号
    18         /// </summary>
    19         public string Id { get; set; }
    20 
    21         /// <summary>
    22         /// 姓名
    23         /// </summary>
    24         public string Name { get; set; }
    25 
    26         /// <summary>
    27         /// 性别
    28         /// </summary>
    29         public Sex Sex { get; set; }
    30 
    31         /// <summary>
    32         /// 年龄
    33         /// </summary>
    34         public int Age { get; set; }
    35 
    36         /// <summary>
    37         /// 爱好
    38         /// </summary>
    39         public string Favor { get; set; }
    40 
    41         /// <summary>
    42         /// 教龄
    43         /// </summary>
    44         public string Year { get; set; }
    45 
    46         #endregion
    47 
    48         #region 抽象方法
    49 
    50         /// <summary>
    51         /// 抽象方法
    52         /// </summary>
    53         /// <param name="personList">Person集合</param>
    54         public abstract void InitPersonList(List<Person> personList); 
    55         #endregion
    56 
    57     }
    58 }

     

    2.3.      设计学生类Student,继承Person类。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Xml;
     6 
     7 namespace FrmPerson
     8 {
     9     /// <summary>
    10     /// 学生类
    11     /// </summary>
    12     public class Student:Person
    13     {
    14         #region 实现父类的抽象方法,解析XML文件
    15 
    16         /// <summary>
    17         /// 解析XML文件,并将解析后的对象添加到集合中
    18         /// </summary>
    19         /// <param name="personList">Person集合</param>
    20         public override void InitPersonList(List<Person> personList)
    21         {
    22             try
    23             {
    24                 XmlDocument xmlDoc = new XmlDocument();
    25                 xmlDoc.Load("World.xml");
    26                 XmlNodeList xmlNodeList = xmlDoc.GetElementsByTagName("Student");
    27                 foreach (XmlNode node in xmlNodeList)
    28                 {
    29                     //通过简单工厂,根据类型创建对象
    30                     Person per = PersonFactory.GetPerson("Student");
    31                     per.Id = node["Id"].InnerText;
    32                     per.Name = node["Name"].InnerText;
    33                     per.Sex = (Sex)Enum.Parse(typeof(Sex), node["Sex"].InnerText);
    34                     per.Age = Convert.ToInt32(node["Age"].InnerText);
    35                     per.Favor = node["Favor"].InnerText;
    36                     per.Year = "";
    37                     personList.Add(per);
    38                 }
    39             }
    40             catch(Exception ex)
    41             {
    42                 
    43                 throw new Exception("文件加载错误!"+ex.Message);
    44             }
    45         } 
    46         #endregion
    47     }
    48 }

     

    2.4.      设计教师类Teacher,继承Person类。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Xml;
     6 
     7 namespace FrmPerson
     8 {
     9     public class Teacher:Person
    10     {
    11         #region 实现父类的抽象方法,解析XML文件
    12 
    13         /// <summary>
    14         /// 解析XML文件,并将解析后的对象添加到集合中
    15         /// </summary>
    16         /// <param name="personList">Person集合</param>
    17         public override void InitPersonList(List<Person> personList)
    18         {
    19             try
    20             {
    21                 XmlDocument xmlDoc = new XmlDocument();
    22                 xmlDoc.Load("World.xml");
    23                 XmlNodeList xlmNodeList = xmlDoc.GetElementsByTagName("Teacher");
    24                 foreach (XmlNode node in xlmNodeList)
    25                 {
    26                     //通过简单工厂,根据类型创建对象
    27                     Person per = PersonFactory.GetPerson("Teacher");
    28                     per.Id = node["Id"].InnerText;
    29                     per.Name = node["Name"].InnerText;
    30                     per.Sex = (Sex)Enum.Parse(typeof(Sex), node["Sex"].InnerText);
    31                     per.Age = Convert.ToInt32(node["Age"].InnerText);
    32                     per.Favor = "";
    33                     per.Year = node["Year"].InnerText;
    34                     personList.Add(per);
    35                 }
    36             }
    37             catch(Exception ex)
    38             {
    39                 
    40                 throw new Exception("文件加载错误!"+ex.Message);
    41             }
    42         } 
    43         #endregion
    44     }
    45 }

    2.5.      设计Person类Actor,继承Person类。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Xml;
     6 
     7 namespace FrmPerson
     8 {
     9     /// <summary>
    10     /// Person类
    11     /// </summary>
    12     public class Actor:Person
    13     {
    14 
    15         #region 实现父类的抽象方法,解析XML文件
    16 
    17         /// <summary>
    18         /// 解析XML文件,并将解析后的对象添加到集合中
    19         /// </summary>
    20         /// <param name="personList">Person集合</param>
    21         public override void InitPersonList(List<Person> personList)
    22         {
    23             try
    24             {
    25 
    26                 XmlDocument xmlDoc = new XmlDocument();
    27                 xmlDoc.Load("World.xml");
    28                 XmlNodeList xmlNodeList = xmlDoc.GetElementsByTagName("Person");
    29                 foreach (XmlNode node in xmlNodeList)
    30                 {
    31                     //通过简单工厂,根据类型创建对象
    32                     Person per = PersonFactory.GetPerson("Person");
    33                     per.Id = node["Id"].InnerText;
    34                     per.Name = node["Name"].InnerText;
    35                     per.Sex = (Sex)Enum.Parse(typeof(Sex), node["Sex"].InnerText);
    36                     per.Age = Convert.ToInt32(node["Age"].InnerText);
    37                     per.Favor = "";
    38                     per.Year = "";
    39                     personList.Add(per);
    40                 }
    41             }
    42             catch(Exception ex)
    43             {
    44                 
    45                 throw new Exception("数据加载错误!"+ex.Message);
    46             }
    47         } 
    48         #endregion
    49     }
    50 }

     

    2.6.      设计简单工厂PersonFactory,创建各个对象。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace FrmPerson
     7 {
     8     /// <summary>
     9     /// 工厂类,用于实例化对象
    10     /// </summary>
    11     public class PersonFactory
    12     {
    13         #region 实例化Person对象
    14 
    15         /// <summary>
    16         /// 实例化Person对象,并返回
    17         /// </summary>
    18         /// <param name="type">要实例化的类型</param>
    19         /// <returns>返回实例化的对象</returns>
    20         public static Person GetPerson(string type)
    21         {
    22             Person per = null;
    23             switch (type)
    24             {
    25                 case "Person":
    26                     per = new Actor(); break;
    27                 case "Student":
    28                     per = new Student(); break;
    29                 case "Teacher":
    30                     per = new Teacher(); break;
    31                 default:
    32                     break;
    33             }
    34             return per;
    35         } 
    36         #endregion
    37     }
    38 }

     

    2.7.      创建全局集合persons,用于保存全部对象。

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Xml;
     6 
     7 namespace FrmPerson
     8 {
     9     /// <summary>
    10     /// Person管理类,用于初始化Person信息
    11     /// </summary>
    12     public class PersonManage
    13     {
    14 
    15         #region 无参构造
    16 
    17         /// <summary>
    18         /// 构造函数,用于实例化Person集合
    19         /// </summary>
    20         public PersonManage()
    21         {
    22             Persons = new List<Person>();
    23         } 
    24         #endregion
    25 
    26         #region Person集合属性
    27 
    28         /// <summary>
    29         /// Person集合
    30         /// </summary>
    31         public List<Person> Persons { get; set; } 
    32         #endregion
    33 
    34         #region 初始化Person集合
    35 
    36         /// <summary>
    37         /// 初始化Person集合
    38         /// </summary>
    39         public void InitPerson()
    40         {
    41             this.Persons.Clear();   //清空集合
    42             try
    43             {
    44                 XmlDocument xmlDoc = new XmlDocument();
    45                 xmlDoc.Load("World.xml");
    46                 XmlNode parensNode = xmlDoc.DocumentElement;
    47                 string name = null;
    48                 foreach (XmlNode personNode in parensNode.ChildNodes)
    49                 {
    50                     //加载的类型重复的话跳过
    51                     if (name == personNode.Name)
    52                     {
    53                         continue;
    54                     }
    55                     name = personNode.Name;
    56                     Person per = PersonFactory.GetPerson(name);
    57                     per.InitPersonList(Persons);
    58                 }
    59             }
    60             catch(Exception ex)
    61             {
    62                 throw new Exception("文件加载错误!"+ex.Message);
    63             }
    64         } 
    65         #endregion
    66 
    67     }
    68 }

     

    2.8.      窗体加载时读取World.xml文件,并创建所有对象存入persons集合。

    2.9.      窗体加载时将persons集合信息显示在ListView控件上。

    1. 事件处理:

    3.1.      点击ListView中的一项,在文本框中显示该项内容。

    3.2.      点击“首条”、“前条”、“后条”、“尾条”按钮,可以从当前显示位置翻看集合中的相应对象内容。

    1. 打印功能:

    4.1.      在硬盘上保存Persons.txt文本文件。内容格式如下:

      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Windows.Forms;
      9 using System.IO;
     10 
     11 namespace FrmPerson
     12 {
     13     public partial class FrmPerson : Form
     14     {
     15         public FrmPerson()
     16         {
     17             InitializeComponent();
     18         }
     19 
     20         PersonManage pm = new PersonManage();       //Person管理对象
     21         int index = 0;                       //用于设置集合下标
     22 
     23         #region 窗体加载,初始化Person信息,并且在ListView上显示人员信息
     24 
     25         private void FrmPerson_Load(object sender, EventArgs e)
     26         {
     27             try
     28             {
     29                 pm.InitPerson();
     30                 BinLvPerson();
     31             }
     32             catch (Exception ex)
     33             {
     34                 MessageBox.Show(ex.Message);
     35             } 
     36         } 
     37         #endregion
     38 
     39 
     40         #region 将数据显示在ListView控件上的方法
     41         /// <summary>
     42         /// 绑定ListView控件
     43         /// </summary>
     44         private void BinLvPerson()
     45         {
     46             foreach (Person per in pm.Persons)
     47             {
     48                 ListViewItem item = new ListViewItem();
     49                 item.Text = per.Id;
     50                 item.SubItems.AddRange(new string[] { per.Name, per.Sex.ToString(), per.Age.ToString(), per.Favor, per.Year.ToString() });
     51                 lvPerson.Items.Add(item);
     52             }
     53         } 
     54         #endregion
     55 
     56 
     57         #region 在文本框中显示ListView控件中选中的行
     58 
     59         private void lvPerson_Click(object sender, EventArgs e)
     60         {
     61             index = this.lvPerson.SelectedItems[0].Index;
     62             ShowPerson(index);
     63         } 
     64 
     65         #endregion
     66 
     67 
     68         #region 文本框显示Person信息的方法
     69 
     70         /// <summary>
     71         /// 文本框显示Person信息的方法
     72         /// </summary>
     73         /// <param name="index">要显示的集合元素的下标</param>
     74         private void ShowPerson(int index)
     75         {
     76             if (pm.Persons.Count==0)
     77             {
     78                 return;
     79             }
     80             Person per = pm.Persons[index];
     81             this.txtNo.Text = per.Id;
     82             this.txtName.Text = per.Name;
     83             this.txtSex.Text = per.Sex.ToString();
     84             this.txtAge.Text = per.Age.ToString();
     85             this.txthobby.Text = per.Favor;
     86             this.txtSchoolAge.Text = per.Year;
     87         } 
     88 
     89         #endregion
     90 
     91 
     92         #region 点击按钮在文本框中显示Person信息
     93 
     94         private void btn_Click(object sender, EventArgs e)
     95         {
     96             Button btn = (Button)sender;
     97             switch (btn.Text)
     98             {
     99                 case "首条":
    100                     index = 0;
    101                     break;
    102                 case "前条":
    103 
    104                     if (index <= 0)
    105                     {
    106                         MessageBox.Show("已经是第一条了!");
    107                         return;
    108                     }
    
    109                     index--;
    110                     break;
    111                 case "后条":
    112 
    113                     if (index >= pm.Persons.Count - 1)
    114                     {
    115                         MessageBox.Show("已经是最后一条了!");
    116                         return;
    117                     }
    118                     index++;
    119                     break;
    120                 case "尾条":
    121                     index = pm.Persons.Count - 1;
    122                     break;
    123             }
    124             ShowPerson(index);
    125         } 
    126         #endregion
    127 
    128 
    129         #region 打印信息
    130 
    131         private void btnPrint_Click(object sender, EventArgs e)
    132         {
    133             StreamWriter sw = new StreamWriter("PersonInfo.txt");
    134             sw.WriteLine("--------人员清单--------");
    135             foreach (Person per in pm.Persons)
    136             {
    137                 sw.WriteLine("姓名:{0}" , per.Name);
    138                 sw.WriteLine("性别:{0}", per.Sex);
    139                 sw.WriteLine("年龄:{0}", per.Age);
    140                 sw.WriteLine("爱好:{0}", per.Favor);
    141                 sw.WriteLine("教龄:{0}", per.Year);
    142                 sw.WriteLine("------------");
    143             }
    144             sw.Close();
    145             MessageBox.Show("打印成功!");
    146         } 
    147         #endregion
    148 
    149 
    150         #region 退出程序
    151 
    152         private void btnExit_Click(object sender, EventArgs e)
    153         {
    154             DialogResult dr=MessageBox.Show("确定要退出吗?","操作提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
    155             if (dr==DialogResult.OK)
    156             {
    157                 Application.Exit();
    158             }  
    159         } 
    160         #endregion
    161     }
    162 }

     

    --------人员清单--------

    姓名:刘德华

    性别:男

    年龄:45

    爱好:无

    教龄:无

    ------------

    姓名:章子怡

    性别:女

    年龄:35

    爱好:无

    教龄:无

    ------------

    姓名:周杰伦

    性别:男

    年龄:25

    爱好:双节棍

    教龄:无

    ------------

    姓名:梅梅

    性别:女

    年龄:17

    爱好:冰淇淋

    教龄:无

    ------------

    姓名:刘老根

    性别:男

    年龄:60

    爱好:无

    教龄:30

    ------------

    姓名:药匣子

    性别:男

    年龄:55

    爱好:无

    教龄:25

    ------------

    1. 程序要求:

    5.1.      对独立功能代码尽量使用方法编写和调用。

    5.2.      注意代码规范。

    5.3.      必要的异常处理。

    5.4.      必要的注释。

     

    如需完整项目,可到http://www.bdjava.com/forum.php?mod=viewthread&tid=21&page=1&extra=#pid22位置下载附件

    转载于:https://www.cnblogs.com/hidelin/archive/2012/09/22/2698016.html

    展开全文
  • 系统管理员的使用权限包括:用户管理、学生信息管理、学生成绩查询,教师的使用权限包括学生信息查询、学生成绩管理、学生成绩查询,学生的使用权限仅有学生信息查询和学生成绩查询。 系统管理员帐号在创建用户表时...
  • 目录一、基本要求二、创建学生课程管理系统(1)在sqldeveloper设计数据库物理模式 一、基本要求 假设有“教师”、“学生”、“课程”三个实体,教师的基本信息包括:工号、姓名、职称、工资,课程的基本信息包括:...
  • 创建一个窗体,选择合适的布局管理器,显示一个按钮“查询”,点击该按钮以后,查询university数据库中的student表(包括学号,姓名,性别,年龄,班级,来自省份等字段)中的信息,并将查询结果返回给窗体显示在...
  • C#创建一个学生对象

    千次阅读 2019-08-05 13:47:50
    public class student { public student() { } public string name { get; set; } public string sex { get;... //name sex 是学生类的属性 } 与Java不一样,Java是先创建属性,再get set ...
  • 新建一个Windows窗体应用程序,命名为Add控件,用来显示ArrayList集合显示学生信息(学生姓名、性别、出生年月)。 using System; using System.Collections; using System.Collections.Generic; using System....
  • 简介: 设计一个Windows应用程序,在该程序中首先构造一个学生基本类,在分别构造小学生、中学生、中职生、大学生等派生类,要求具有不同的特征和行为,能通过静态成员自动记录不同的学生人数。 界面截图: 知识点:...
  • 作者:Waylon简介:小白一枚,和大多数同学一样从零开始一步步学习...首先创建一个游戏窗体类GameFrame,继承至JFrame,用来显示在屏幕上,设置好窗口标题、尺寸、布局等。 public class GameFrame extends JFrame...
  • 文章目录七、实现步骤(十)创建窗口界面...目前只是创建一个可以显示出来和关闭的主界面窗口,等到将各个功能模块窗口界面都完成了,我们会修改代码,给出主窗口界面的最终版。 MainFrame继承JFrame类 添加构造方法
  • Form.cs /* (程序头部注释开始) * 程序的版权和版本声明部分 ... * 文件名称:设计一个窗体 * 作 者: 雷恒鑫 * 完成日期: 2012 年 11 月 04 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分
  • public tt()//创建窗体及布局 { super("学生信息管理系统"); setSize(500,500); Container c1=getContentPane();//获取窗格并更改控件 label1=new JLabel("姓名:"); button1=new JButton("增加"); String[] ...
  • 窗体样式: 操作步骤: 一、引用文件包:(进去管理NuGet程序包,引入EF Core所需的三个包) 二、创建实体模型类:(这里以Student实体模型类为例) public class Student { //学生学号 public int ...
  • 分组形式:panel GoupBox 窗体 方法: 属性 说明 Appearance RadioButton 控件的显示与命令按钮相似 Checked 确定是否已选定控件 方法 ...
  • Python编程:学生信息录入及显示

    千次阅读 2018-06-21 18:14:16
    由于各种误导,我写出了如下的愚蠢的代码...然后请教了一个学长,然后又问了群里的一个大佬,最后结果:(左边是根据大佬提示写出来的代码,右边是学长给的代码)运行结果如下:学长的代码有点深度似乎用到了类?...
  • Java 图形界面开发--图文并茂建立学生管理系统

    万次阅读 多人点赞 2016-03-19 19:52:28
    //显示窗体 //锁定窗体 this.setResizable(false); } } 运行界面如图所示:   本静态界面的实现,使用了网格布局,3行1列,在每一行中放入了一个JPanel面板,每个面板上又分别放入所需的组件,...
  • Java Swing--学生信息管理系统

    千次阅读 2017-10-28 19:31:57
    学生登录窗体
  • 废话不多说,直接上实例,对学生表进行事件传值来完成对添加修改窗体的赋值。 (1)创建Student类 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _05事件传值...
  • 窗体应用程序防腾讯QQ源码 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Text; 7 using ...
  • Java+学生信息管理系统+GUI+文件

    万次阅读 多人点赞 2019-07-05 20:10:03
    该系统可实现学生信息的增加,删除,修改,查询,并将学生信息存储在文件中 其中, 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以...
  • 一、概述1.1涉及到的知识点项目开发:创建项目,创建包,导入包;面向对象:静态方法,继承,内置函数,自定义函数;数据类型:列表,字典,字符串、列表、字典的转换和自动生成导向;异常处理:捕获异常; 文件...
  • 创建学生数据库StuDB,文件名和位置自定,在此数据库中创建如下三张表: 学生表(student) (  学号(sno) 普通编码定长字符类型,长度9,主码,  姓名(sname) 普通编码定长字符类型,长度10,非空,  性别(ssex...
  • 学生信息录入界面java

    千次阅读 2020-10-27 18:42:59
    1、创建一个学生信息录入界面,学生有学号、姓名、年龄、班级和成绩信息,界面中包含“确定”和“重置”按钮。 2、实现事件处理,单击“确定”按钮将学生信息封装到对象中,并通过输出对象将学生信息显示在终端控制...
  • 定义私有数据成员name,id,age分别用于表示姓名,学号,年龄。 完成构造函数的重载,使用不同的构造函数创建不同的对象。 完成拷贝构造函数的定义 string 类型的数据成员 /*数据成员是string类型的拷贝构造函数...
  • 1、该大学生信息管理系统采用了tkinter来创建窗口界面。使得界面更加的美观。 2、实现了与数据库的连接,能够将老师和学生的信息保存或者读取,而且可以通过数据库访问基本信息 3、实现了学生的数据的增加,删除,...
  • java中list集合获取学生信息

    千次阅读 2017-03-22 20:28:39
    编写getTable()方法,在该方法中创建表格对象,设置表格的数据模型,然后调用getStudents()方法获取保存的学生信息的集合对象 在遍历该集合对象的同时吧每个元素添加到表格模型的行并显示到表格控件 编写getStudent...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,029
精华内容 411
关键字:

创建显示学生年龄的窗体