实验四 Windows程序设计

1,创建Windows窗体应用程序,实现用户登录功能,当输入正确与错误时均给出相应的提示信息,规定用户输入错误次数不能超过3次。(源代码+运行界面)

在这里插入图片描述
这里的口令有个小常识,就是显示*,在口令对应的textBox2--->行为--->PasswordChar 改成 * 即可

所需控件:groupBox1、label1、label2、TextBox1、TextBox2、button1、button2

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 text4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private static int count = 0;
        private void button1_Click(object sender, EventArgs e)
        {
            if ((textBox1.Text == "beyondyanyu")&& (textBox2.Text == "123"))
            {             
                    MessageBox.Show("欢迎beyondyanyu,登录成功!!!","登录成功",MessageBoxButtons.OK);               
            }
            else {
                count++;
                MessageBox.Show("用户名或口令不正确(您一共有3次机会)", "Exclamation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                if (count == 3) {
                    MessageBox.Show("抱歉您次数已用完", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            System.Environment.Exit(0);//这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。 
        }

    }
}

效果图如下:
运行效果图
提示信息
异常
3次都错误

2,创建Windows窗体应用程序,界面如下所示,当在组合框中输入一个新项时自动添加到组合框中,并给出相应提示;当输入一个已存在项时给出相应提示。(源代码+运行界面)

在这里插入图片描述在这里插入图片描述
这里需要更改触发按键 comboBox1--->键--->KeyPress 或 KeyDown 我这里用了两种方法选一种即可

所需控件:label1、label2、comboBox1

在这里插入图片描述

using System;
using System.Windows.Forms;

namespace text4_2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("安阳");
            comboBox1.Items.Add("成都");
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            MessageBox.Show("您选择的城市是:" + comboBox1.Text, "提示");
        }

        private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            /*
            if (e.KeyChar == 13)
            {
                if (comboBox1.Items.Contains(comboBox1.Text))
                {
                    label2.Text = "你的输入已在组合框!";
                }
                else
                {
                    comboBox1.Items.Add(comboBox1.Text);
                    label2.Text = "你的输入项已添加到组合框中!";
                }
            }
            */
        }
        private void comboBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyData.Equals(System.Windows.Forms.Keys.Enter))
            {
                if (e.KeyCode == Keys.Enter)
                {
                    if (comboBox1.Items.Contains(comboBox1.Text))
                    {
                        label2.Text = "你的输入已在组合框!";
                    }
                    else
                    {
                        comboBox1.Items.Add(comboBox1.Text);
                        label2.Text = "你的输入项已添加到组合框中!";
                    }
                }
            }
        }
         
    }

}

效果图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3,创建Windows窗体应用程序,用一个学生结构数组存放10名学生的记录,然后根据用户指定的学号显示相应的学生记录,具体界面如下所示。(源代码+运行界面)

在这里插入图片描述

所需控件:groupBox1、groupBox2、label1、label2、label3、label4、label5、TextBox1、TextBox2、TextBox3、TextBox4、TextBox5、button1、comboBox1

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 text4_3
{
    public partial class Form1 : Form
    {
        struct Scores
        {
            public int unum;
            public string name;
            public string sex;
            public int cnum;
            public string birthday;
        }
  
        Scores[] yy = new Scores[10];

        public Form1()
        {
            InitializeComponent();
            comboBox1.Items.Add("1");
            comboBox1.Items.Add("2");
            comboBox1.Items.Add("3");
            comboBox1.Items.Add("4");
            comboBox1.Items.Add("5");
            comboBox1.Items.Add("6");
            comboBox1.Items.Add("7");
            comboBox1.Items.Add("8");
            comboBox1.Items.Add("9");
            comboBox1.Items.Add("10");
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Scores y1, y2, y3, y4, y5, y6, y7, y8, y9, y10;
            y1.unum = 1; y1.name = "喜羊羊"; y1.sex = "男"; y1.cnum = 5118; y1.birthday = "1999/7/5";
            y2.unum = 2; y2.name = "美羊羊"; y2.sex = "女"; y2.cnum = 777; y2.birthday = "1992/9/5";
            y3.unum = 3; y3.name = "暖洋洋"; y3.sex = "女"; y3.cnum = 515; y3.birthday = "1998/12/1";
            y4.unum = 4; y4.name = "沸羊羊"; y4.sex = "男"; y4.cnum = 788; y4.birthday = "1999/9/21";
            y5.unum = 5; y5.name = "懒羊羊"; y5.sex = "男"; y5.cnum = 4118; y5.birthday = "1999/10/15";
            y6.unum = 6; y6.name = "壮羊羊"; y6.sex = "男"; y6.cnum = 818; y6.birthday = "1998/10/14";
            y7.unum = 7; y7.name = "灰太狼"; y7.sex = "男"; y7.cnum = 7118; y7.birthday = "1994/1/25";
            y8.unum = 8; y8.name = "村长"; y8.sex = "男"; y8.cnum = 5748; y8.birthday = "1989/11/7";
            y9.unum = 9; y9.name = "小灰灰"; y9.sex = "男"; y9.cnum = 787; y9.birthday = "2020/4/3";
            y10.unum = 10; y10.name = "红太狼"; y10.sex = "女"; y10.cnum = 74185; y10.birthday = "1999/7/18";

            int a = int.Parse(comboBox1.SelectedItem.ToString());
            if (a == 1)
            {
                textBox1.Text = y1.unum.ToString();
                textBox2.Text = y1.name;
                textBox3.Text = y1.sex;
                textBox4.Text = y1.cnum.ToString();
                textBox5.Text = y1.birthday;

            }
            else if (a == 2)
            {
                textBox1.Text = y2.unum.ToString();
                textBox2.Text = y2.name;
                textBox3.Text = y2.sex;
                textBox4.Text = y2.cnum.ToString();
                textBox5.Text = y2.birthday;
            }
            else if (a == 3)
            {
                textBox1.Text = y3.unum.ToString();
                textBox2.Text = y3.name;
                textBox3.Text = y3.sex;
                textBox4.Text = y3.cnum.ToString();
                textBox5.Text = y3.birthday;
            }
            else if (a == 4)
            {
                textBox1.Text = y4.unum.ToString();
                textBox2.Text = y4.name;
                textBox3.Text = y4.sex;
                textBox4.Text = y4.cnum.ToString();
                textBox5.Text = y4.birthday;
            }
            else if (a == 5)
            {
                textBox1.Text = y5.unum.ToString();
                textBox2.Text = y5.name;
                textBox3.Text = y5.sex;
                textBox4.Text = y5.cnum.ToString();
                textBox5.Text = y5.birthday;
            }
            else if (a == 6)
            {
                textBox1.Text = y6.unum.ToString();
                textBox2.Text = y6.name;
                textBox3.Text = y6.sex;
                textBox4.Text = y6.cnum.ToString();
                textBox5.Text = y6.birthday;
            }
            else if (a == 7)
            {
                textBox1.Text = y7.unum.ToString();
                textBox2.Text = y7.name;
                textBox3.Text = y7.sex;
                textBox4.Text = y7.cnum.ToString();
                textBox5.Text = y7.birthday;
            }
            else if (a == 8)
            {
                textBox1.Text = y8.unum.ToString();
                textBox2.Text = y8.name;
                textBox3.Text = y8.sex;
                textBox4.Text = y8.cnum.ToString();
                textBox5.Text = y8.birthday;
            }
            else if (a == 9)
            {
                textBox1.Text = y9.unum.ToString();
                textBox2.Text = y9.name;
                textBox3.Text = y9.sex;
                textBox4.Text = y9.cnum.ToString();
                textBox5.Text = y9.birthday;
            }
            else if (a == 10)
            {
                textBox1.Text = y10.unum.ToString();
                textBox2.Text = y10.name;
                textBox3.Text = y10.sex;
                textBox4.Text = y10.cnum.ToString();
                textBox5.Text = y10.birthday;
            }
        }
    }
}

效果图如下:
学号1
学号8

4,创建一个项目,设计一个窗体Form1,其中包含一个TreeView控件treeView1和一个ListView控件listView1,单击treeView1控件中的某结点时,在listView1中显示所有子结点,并通过弹出式菜单选择listView1控件的大图标、小图标、列表和完整图标4种视图显示模式。如下图所示:(源代码+运行界面)

在这里插入图片描述

所需控件:treeView1、imageList1、imageList2、listView1、contextMenuStrip1

这里在imageList1和imageList2里面需要手动添加对应小动物图片,可根据之间需要上传,前面的index对应下面代码中的listView1.Items.Add("小猫",0);这个0 如:imageList1--->外观--->Images 选择上传图片即可

在Form1属性中找ContextMenuStrip---->设置为contextMenuStrip1 也就是绑定弹出式菜单
在ContextMenuStrip--->右击编辑项--->添加你要添加的状态(我添加的是大图标、小图标、详细信息)会对应生成toolStripMenuItem1--->然后分别找到toolStripMenuItem1的属性中Click进行绑定事件(例如代码下方的small_Clike方法)

using System;
using System.Windows.Forms;

namespace text4_4
{
    public partial class Form1 : Form
    {
        ColumnHeader h1 = new ColumnHeader();//详细信息的时候需要显示上面的列 第一列
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            h1.Text = "你瞅这是啥小动物?";
            listView1.Columns.Add(h1);

            treeView1.Nodes.Add("哺乳动物");
            treeView1.Nodes.Add("鱼类");
            treeView1.Nodes.Add("鸟类");

            treeView1.Nodes[0].Nodes.Add("小猫");
            treeView1.Nodes[0].Nodes.Add("小猪");
            treeView1.Nodes[0].Nodes.Add("小狗");

            treeView1.Nodes[1].Nodes.Add("鲨鱼");
            treeView1.Nodes[1].Nodes.Add("热带鱼");
            treeView1.Nodes[1].Nodes.Add("金鱼");

            treeView1.Nodes[2].Nodes.Add("小鸟");
            treeView1.Nodes[2].Nodes.Add("中鸟");
            treeView1.Nodes[2].Nodes.Add("大鸟");
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            //listView1.Items.Clear();
            listView1.LargeImageList = imageList1;//大图标
            listView1.SmallImageList = imageList2;//小图标
            string s = e.Node.Text;

            switch (s)
            {
                case "哺乳动物":
                    listView1.Items.Clear();
                    listView1.Items.Add("小猫", 0);
                    listView1.Items.Add("小狗", 1);
                    listView1.Items.Add("小猪", 2);
                    break;
                case "鱼类"://鱼类图片我就不加了,手边图片不多,拿哺乳动物为例就行
                    listView1.Items.Clear();
                    listView1.Items.Add("鲨鱼");
                    listView1.Items.Add("热带鱼");
                    listView1.Items.Add("金鱼");
                    break;
                case "鸟类":
                    listView1.Items.Clear();
                    listView1.Items.Add("小鸟");
                    listView1.Items.Add("中鸟");
                    listView1.Items.Add("大鸟");
                    break;
                case "小猫":
                    listView1.Items.Clear();
                    listView1.Items.Add("小猫", 0);
                    break;
                case "小狗":
                    listView1.Items.Clear();
                    listView1.Items.Add("小狗", 1);
                    break;
                case "小猪":
                    listView1.Items.Clear();
                    listView1.Items.Add("小猪", 2);
                    break;
                case "鲨鱼":
                    listView1.Items.Clear();
                    listView1.Items.Add("鲨鱼");
                    break;
                case "热带鱼":
                    listView1.Items.Clear();
                    listView1.Items.Add("热带鱼");
                    break;
                case "小鸟":
                    listView1.Items.Clear();
                    listView1.Items.Add("小鸟");
                    break;
                case "中鸟":
                    listView1.Items.Clear();
                    listView1.Items.Add("中鸟");
                    break;
                case "大鸟":
                    listView1.Items.Clear();
                    listView1.Items.Add("大鸟");
                    break;

            }

        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }

        private void listView1_ContextMenuStripChanged(object sender, EventArgs e)
        {

        }

        private void contextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e)
        {

        }
        private void small_Clike(object sender,EventArgs e)//小图标,需要和toolStripMenuItem1的Click事件绑定
        {
            listView1.View = View.SmallIcon;
        }
        private void big_Clike(object sender, EventArgs e)//大图标,需要和toolStripMenuItem2的Click事件绑定
        {
            listView1.View = View.LargeIcon;
        }
        private void all_Clike(object sender, EventArgs e)//详细信息,需要和toolStripMenuItem3的Click事件绑定
        {
            listView1.View = View.Details;
        }

    }
}



效果图如下:
右击即可选择弹出式菜单,这里我只写了3种(大图标、小图标、详细信息)
大图标
小图标
详细信息

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyond谚语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值