辜渝傧

13037102709

027-87870986

教学实训

您当前的位置:首页 > 教学资源 > 实训方案 >

C#应用实训|任务2 注册窗体实现

发布者:唯众    布时间:2020-12-13 16:40:00    点击量:

任务描述

        显示会员注册窗体,用户在窗体中输入注册信息,并能上传用户照片功能,注册信息输入完毕后,单击注册按钮,弹出是否注册消息对话框,单击消息对话框的“是”按钮,弹出显示用户注册信息窗体;单击窗体“取消”按钮,关闭会员注册窗体。

知识引入

  1. 单选按钮(RadioButton)和分组框(GroupBox)
        单选按钮(RadioButton)控件支持用户勾选和不勾选两种状态,在文字前面用一个可以勾选的圆点来表示。当同一个“容器”中有多个RadioButton控件时,它们自动被识别为一组,一次只能有一个RadioButton控件被选中。所以,如果有三个选项,例如Red、Blue、Green,若Red被选中,而用户在去单击Blue,则Red会自动取消选中。这种特性适合于允许用户仅选取一个选项的情况。例如,用户对于性别的选择。
RadioButton常用的事件和属性如表4-5所示。
4-5  RadioButton常用的事件和属性
属性 描述
Name 获取或设置控件的名称
CheckBox 布尔值,该值指示是否已选中控件
方法 描述
Focus 为控件设置输入焦点
Hide 对用户隐藏控件
Show 向用户显示控件
事件 描述
Click 在单击控件时发生
CheckedChanged 当Checked属性的值更改的时发生
 
         对于“容器”的概念,所谓“容器”就是可以装控件的对象,比如窗体本身就是一个容器,分组框控件也是一种典型的容器控件,可以使用GroupBox对单选按钮进行分组。在WinForm应用程序开发中,RadioButton控件经常和GroupBox控件结合起来使用。单选按钮的特点是当选中其中的一个,其余自动关闭,当需要在同一窗体中建立几组相互独立的单选按钮时,就需用GroupBox控件将第一组单选按钮框起来,这样在一个框内对单选按钮的操作,就不会影响框外其他组的单选按钮了。
编码标准:单选按钮控件前面加rad前缀,分组控件前面加grp前缀。
4-2
单选按钮、分组框示例,如图4-14所示:
图4-14单选按钮、分组框示例
  1. 复选框(CheckBox)
复选框(CheckBox)和单选按钮一样,也支持勾选和不勾选两种状态,在文字前面用一个勾选的框来表示。所不同的是,复选框可以允许用户选取多个选项。
在实际应用中,多个复选框可以同时存在,并且相互独立。即在多个复选框中,同时可以有一个或多外被选中。
复选框的常用属性、方法和事件与单选按钮非常相似,不再重复列出。
  1. 列表框(ListBox)和组合框(ComboBox)
(1)列表框(ListBox)
        列表框控件显示一个项的列表,用户可以从中选择一项或多项。列表框中的每个选项被称为项(Item)。列表框控件的主要属性、方法和事件如表4-6所示。
表4-6  ListBox常用的事件和属性
属性 说明
Items 获取ListBox里所有的项
SelectedIndex ListBox中当前选中项从零开始的索引
SelectedItem 获取ListBox中当前选中的项
Text 获取ListBox中当前选中项的文本
方法 说明
ClearSelected 清除ListBox中的所有选中的项
事件 说明
SelectedIndexChanged ListBox控件当前选择的项的索引变化时只需
 
         向列表框控件里面添加选项有两种方式,一种方式是通过设计窗体的属性对话框,先选中ListBox控件,然后选择属性对话框里的Item属性,进入到字符创结合编辑器对话框,进行选项添加;还有一种方式是通过编写代码的方式。
(2)组合框(ComboBox)
        组合框也叫下拉列表框,可以通过下拉列表框列出用户可做出的选择,并允许用户选择其中一项,程序可以读取被选择的项,从而得到用户数据。组合框控件(ComboBox)与列表框控件(ListBox)的常用属性和事件非常相似,如表4-7所示。
表4-7  ComboBox常用的事件和属性
属性 说明
DropDownStyle 获取或设置组合框控件的样式,为一个枚举值
Items 获取ComboBox里的所有项
SelectedIndex 获取ComboBox中当前选中项的从零开始的索引
SelectedItem 获取ComboBox中的当前选中的项
Text 获取ComboBox中当前选项的文本
方法 说明
SelectAll 选择ComboBox可编辑部分文本中所有的文本
事件 说明
SelectedIndexChanged 在SelectedIndex属性更改后发生
 
编码标准:在列表框控件名前加lst前缀,在下拉列表控件名前加cbo前缀。
  1. 图片框(PictureBox)和图像列表(ImageList)
(1)图片框(PictureBox)
        图片框(PictureBox)控件是专门用于显示图片的控件。可用于显示包括*.bmp(位图文件)、*.gif、*.jpg、*.ico(图标文件)等格式图形文件。PictureBox控件常用的属性和方法如表4-8所示。
表4-8  PictureBox常用的属性和方法
属性 说明
Image 获取或设置PictureBox显示的图片
SizeMode 设置如何显示图像。可以指定集中不同的模式如AutoSize、CenterImage、Normal和StretchImage。默认为Normal
方法 说明
Show 用于向用户显示控件
 
(2)图像列表(ImageList)
        图像列表(ImageList)控件用于存储其他控件(如PictureBox控件等)需要的图像。用户在图像列表中保存的图像可以使图片(*.bmp、*.jpg、*.gif等)和图标(*.ico)。图像列表控件和定时器控件一样,添加该控件不会在窗体上显示,而是显示在窗体下方。
        图像列表控件中的图像保存它的Images属性中,这个属性是一个集合,可以在设计窗体下通过单击“属性”窗体中的Images旁边的“…”按钮打开“图像集合编辑器”对话框,为其添加图像,如图4-15所示。
图4-15 “图像集合编辑器”对话框

任务实现

会员管理系统注册窗体(FrmRegister)实现。
4-3
1.  设计会员管理系统显示会员注册信息窗体FrmInfo,如图4-16所示
图4-16 会员注册窗体
打开FrmInfo窗体,为其添加一个公共成员方法,代码如下:
public void showUserInfo(string userName, string password, string city, string member, string sex, string hobby, string shen, string path)
{
    txtInfo.Text = "姓名:" + userName;
    txtInfo.Text += "\r\n密码:" + password;
    txtInfo.Text += "\r\n性别:" + sex;
    txtInfo.Text += "\r\n爱好:" + hobby;
    txtInfo.Text += "\r\n省份:" + shen;
    txtInfo.Text += "\r\n城市:" + city;
    txtInfo.Text += "\r\n备注:" + member;
    txtInfo.Text += "\r\n图片文件路径:" + path;
}
2.  设计会员管理系统注册窗体FrmRegister,如图4-17所示
图4-17 会员注册窗体
 
(1)双击FrmRegister窗体的“注册”按钮,为其添加如下代码:
private void button3_Click(object sender, EventArgs e)
{
    OpenFileDialog ofdg = new OpenFileDialog();
    ofdg.InitialDirectory = "e:\\";
    DialogResult dr = ofdg.ShowDialog();
    if (dr == System.Windows.Forms.DialogResult.OK)
    {
        path = ofdg.FileName;
        picImg.Image = Image.FromFile(path);
    }
}
(2)为省份组合框SelectedIndexChanged事件添加如下代码:
private void cmbShen_SelectedIndexChanged(object sender, EventArgs e)
{
    lstCity.Items.Clear();
    int index = cmbShen.SelectedIndex;
    if (index == 0)
    {
        lstCity.Items.Add("石家庄市");
        lstCity.Items.Add("保定市");
    }
    if (index == 1)
    {
        lstCity.Items.Add("武汉市");
        lstCity.Items.Add("黄冈市");
        lstCity.Items.Add("荆州市");
    }
    if (index == 2)
    {
        lstCity.Items.Add("长沙市");
        lstCity.Items.Add("湘潭市");
        lstCity.Items.Add("岳阳市");
    }
    if (index == 3)
    {
        lstCity.Items.Add("广州市");
        lstCity.Items.Add("东莞市");
        lstCity.Items.Add("深圳市");
     }
}
(3)双击FrmRegister窗体的“注册”按钮,为其添加如下代码:
private void btnReg_Click(object sender, EventArgs e)
{
    string userName = txtUser.Text;  //获取用户名
    string password = txtPwd.Text;  //获取密码
    //获取性别
    string sex = "";
    if (rdoMale.Checked)
    {
        sex = rdoMale.Text;
    }
        else if (rdoFemale.Checked)
    {
        sex = "女";
    }
    else
    {
        sex = "未选择";
    }
    //获取爱好
    string hobby = "";
    foreach (CheckBox chk in grpHobby.Controls)
    {
        if (chk.Checked)
        {
            hobby += chk.Text;
        }
    }
    //获取省份
     string shen = cmbShen.Text;
     string city = "";  //城市
     int count = lstCity.SelectedItems.Count;  //获取所有被选中的城市数量
     for (int i = 0; i < count; i++)
     {
        city += lstCity.SelectedItems[i].ToString();  //SelectedItems[i]:表示获取指定索引位置的项
     }
     string member = txtMember.Text;  //获取备注 
     DialogResult dr = MessageBox.Show("是否注册?", "提示框", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
     if (dr == System.Windows.Forms.DialogResult.Yes)//如果用户选择的是“是”
     {
        FrmInfo fi = new FrmInfo();  //创建一个窗体对象
        fi.Show();   //弹出窗体
        fi.showUserInfo(userName, password, city, member, sex, hobby, shen, path);
      }
}
(4)双击FrmRegister窗体的“取消”按钮,为其添加如下代码:
private void button2_Click(object sender, EventArgs e)
{
    Application.Exit();
}

任务小结

  1. WinForm中单选按钮的使用。
  2. 可以使用分组框对控件进行分组。
  3. WinForm中复选框的使用。
  4. 用PictureBox可显示图片入。


上一篇:C#应用实训|任务1 登陆窗体实现

下一篇:C#应用实训|任务3 主窗体功能实现