C#简单的制作一个窗体应用

废话少说下面先看效果

 登陆管理员

注册账号和管理账号

 

修改密码界面

 

功能界面

 

功能一

连接中国移动物联网平台检测温湿度

输入wendu可以查询

功能二

查看图片

 功能三

读写通知管理员可以写但普通成员只可以读

 功能四

计算工具,可以计算三角形,圆,矩形的周长和面积

 功能五

球员的分配

功能六

快速打开电脑上的软件,包括第三方软件

 功能七

模拟i汕职的一个每天体温登记

 功能八

自己制作一个串口监视器来控制LED

 以上就是基本的功能,可能还存在很多问题,希望大家体谅,毕竟这也是我第一次发表C#

下面我来说一下我是如何制作的

首先创建一个窗体应用

 接下来制作一个密码锁的系统

这是登录按键的处理

        private void button1_Click(object sender, EventArgs e)
        {
            string mima;
            
            if (File.Exists("../../" + zh.Text + ".txt"))
            {
                mima = Read(".../.../" + zh.Text + ".txt");
                MM_1 = "密码:" + mm.Text;

                
                if (mima == MM_1)
                {
                    ZH_1 = zh.Text;
                    label3.Text = "恭喜你密码正确,欢迎使用本系统";
                    button3.Visible = true;
                    if (zh.Text == "陈列") button4.Visible = true;
                    button5.Visible = true;
                    bz = 1;

                }
                else
                {
                    label3.Text = "密码错误,请重新输入";
                }
            }
            else
            {
                MessageBox.Show("请输入正确的账号谢谢!!!!!");
            }
  
    if (zh.Text != "" && mm.Text != "")
    {
        string txt = "\r\n\r\n" + DateTime.Now.ToString("yyy年MM月dd日 HH:mm:ss" + "\r\n");
        int  n = ZH.Length;


        for (int i = 0; i < n; i++)
        {

            if (ZH[i] == zh.Text)
            {
                if (mm.Text == MM[i])
                {
                    label3.Text = "恭喜你密码正确,欢迎使用本系统";
                    button3.Visible = true;
                    button4.Visible = true;
                    button5.Visible = true;

                    bz = 1;
                    x = i;

                }
                else
                {
                    label3.Text = "密码错误,请重新输入";
                }

            }
       




        }
   

    /*     if (zh.Text == ZH)
         {
             if (mm.Text == MM)
             {
                 label3.Text = "恭喜你密码正确,欢迎使用本系统";
                 button3.Visible = true;
                 bz = 1;
             }
             else
             {
                 label3.Text = "密码错误,请重新输入";
             }
         }
         else
         {
             label3.Text = "账号错误,请重新输入";
         }
         if (bz_1 == 1)
         {
             label3.Text = "密码修改成功";
             button1.Text = "登录";
             button2.Text = "退出";
             button3.Text = "";
             MM = mm.Text;
             bz_1 = 0;
         }
         */
}
        }

 接下来就是修改界面和管理界面,注意看我的代码写法,几个关键点

例如,管理界面的移除账号就是以下代码


        private void button4_Click(object sender, EventArgs e)
        {
            int l;
            l = Convert.ToInt32(this.listBox1.SelectedItem.ToString());
            string fileFullPath = ".../.../" + listBox1.Items[listBox1.SelectedIndex].ToString() + ".txt";
         
            if (File.Exists(fileFullPath))
            {
                // 2、根据路径字符串判断是文件还是文件夹
                FileAttributes attr = File.GetAttributes(fileFullPath);
                // 3、根据具体类型进行删除
                if (attr == FileAttributes.Directory)
                {
                    // 3.1、删除文件夹
                    Directory.Delete(fileFullPath, true);
                }
                else
                {
                    // 3.2、删除文件
                    File.Delete(fileFullPath);
                }
                File.Delete(fileFullPath);
            }
             if (this.listBox1.SelectedItems.Count > 0)
            {

                string checkPeople = this.listBox1.SelectedItem.ToString();

                this.listBox1.Items.Remove(checkPeople);

            }
            else
            {
                MessageBox.Show("未选中,无法移除!");
            }
        
            string t = "";
             string[] a = File.ReadAllLines(@"../../目录.txt", System.Text.Encoding.Default);//获取文本中每一行数据存在数组中

             for (int i = l; i < a.Length - 1; i++)   // 利用算法进行覆盖的操作
             {
                 t = a[i];
                 a[i] = a[i + 1];
                 a[i + 1] = t;
             }
             StreamWriter sw = new StreamWriter(@"../../目录.txt", false, System.Text.Encoding.Default);
             for (int j = 0; j < a.Length-1; j++)
             {
                 sw.Write(a[j]);
                 sw.WriteLine();
             }
             sw.Flush();
             sw.Close();
             
        }

注意     int l;
            l = Convert.ToInt32(this.listBox1.SelectedItem.ToString());

必须放在前面否则会报错

修改密码界面很简单,我就不说了,

下面是功能一

连接中国移动物联网进行温湿度检测

几个关键点下面这几句要注意

            string url_s = "http://api.heclouds.com/devices/94887316自己的ID号/datastreams/"; 
SetHeaderValue(request.Headers, "api-key", "E60z0oVBQ4lNAircnCm9=Mwggio=");//设备API地址和 首部参数
           request.Host = "api.heclouds.com";

功能二

首先在...\...\模板\App4\App4这个路径建立一个文件夹命名为“图片”

然后把需要显示的图片复制进去

接着按顺序命名为1,2,3...

然后在这里建立文件夹

 下面就是编写代码了

x就是页数

  pictureBox1.Image = Image.FromFile("../../图片/" + x.ToString() + ".jpeg");

功能三

管理员开放些通知,普通成员只能读

下面这句函数很关键,这是这是打开相对路径的文本

Read(".../.../" + listBox1.Items[listBox1.SelectedIndex].ToString() + ".txt");

功能四

太简单了,过

功能五

球员的分配

当点击添加球员的时候可以把textBox的值放到listBox1里面,通过按下转移对象进行转移

下面请看代码

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

        private void button1_Click(object sender, EventArgs e)
        {
            //获取添加人的值
            string peopleText = this.textBox1.Text.Trim().ToString();
            //获取listbox1的对象
            ListBox list1 = this.listBox1;
            //判断人员是否已经添加过
            if (!list1.Items.Contains(peopleText))
            {
                list1.Items.Add(peopleText);
            }
            else
            {
                MessageBox.Show("该球员已经添加过,无法重复添加!");
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //获取listbox1的所有选中的项
            if (this.listBox1.SelectedItems.Count > 0)
            {
                string checkPeople = this.listBox1.SelectedItem.ToString();
                //判断是否添加到listbox2
                if (!this.listBox2.Items.Contains(checkPeople))
                {
                    //添加人员到listbox2中
                    this.listBox2.Items.Add(checkPeople);
                    //移除listbox1中
                    this.listBox1.Items.Remove(checkPeople);
                }
                else
                {
                    MessageBox.Show("该球员已经转移过,无法重复转移!");
                }
            }
            else
            {
                MessageBox.Show("未选中球员,无法转移到替补阵容!");
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //获取listbox2的所有选中的项
            if (this.listBox2.SelectedItems.Count > 0)
            {
                string checkPeople = this.listBox2.SelectedItem.ToString();
                //判断是否添加到listbox1
                if (!this.listBox1.Items.Contains(checkPeople))
                {
                    //添加人员到listbox1中
                    this.listBox1.Items.Add(checkPeople);
                    //移除listbox1中
                    this.listBox2.Items.Remove(checkPeople);
                }
                else
                {
                    MessageBox.Show("该球员已经转移过,无法重复转移!");
                }

            }
            else
            {
                MessageBox.Show("未选中球员,无法转移到主力阵容!");
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (this.listBox2.SelectedItems.Count > 0)
            {
                string checkPeople = this.listBox2.SelectedItem.ToString();


                this.listBox2.Items.Remove(checkPeople);


            }

            else if (this.listBox1.SelectedItems.Count > 0)
            {

                string checkPeople = this.listBox1.SelectedItem.ToString();

                this.listBox1.Items.Remove(checkPeople);

            }
            else
            {
                MessageBox.Show("未选中球员,无法移除!");
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            Form5 f5 = new Form5();
            this.Hide();
            f5.Show();
        }
    }
}

功能六

只要注意这句就行

这是打开系统软件的关键语句

 System.Diagnostics.Process.Start("");

 下面这是打开第三方软件的代码,注意路径就行

     System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();

            //设置外部程序名  
            Info.FileName = "cloudmusic.exe";

            //设置外部程序工作目录为   C:\  
            Info.WorkingDirectory = @"...\...\Netease\CloudMusic";

            //最小化方式启动
            Info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;

            //声明一个程序类  
            System.Diagnostics.Process Proc;

            try
            {
                Proc = System.Diagnostics.Process.Start(Info);
                System.Threading.Thread.Sleep(500);
            }
            catch (System.ComponentModel.Win32Exception)
            {
                return;
            }

功能七

模拟i汕职打卡

关键只有两个地方,查看功能和前面查看账号类似

检测目录 

写入数据

 功能八

制作串口监视器,主要部分是打开串口,下面是打开串口的代码

 if (button1.Text == "打开串口")

                try

                {

                    serialPort1.PortName = comboBox1.Text;

                    serialPortName = comboBox1.Text;

                    serialPort1.BaudRate = int.Parse(comboBox2.Text);

                    serialPort1.DataBits = int.Parse(comboBox4.Text);

                    if (comboBox3.Text == "1")

                    { serialPort1.StopBits = System.IO.Ports.StopBits.One; }

                    else if (comboBox3.Text == "1.5")

                    { serialPort1.StopBits = System.IO.Ports.StopBits.OnePointFive; }

                    else if (comboBox3.Text == "2")

                    { serialPort1.StopBits = System.IO.Ports.StopBits.Two; }



                    if (comboBox5.Text == "无")

                    { serialPort1.Parity = System.IO.Ports.Parity.None; }

                    else if (comboBox5.Text == "奇校验")

                    { serialPort1.Parity = System.IO.Ports.Parity.Odd; }

                    else if (comboBox5.Text == "偶校验")

                    { serialPort1.Parity = System.IO.Ports.Parity.Even; }



                    serialPort1.Open();

                    button1.Text = "关闭串口";

                }

                catch (Exception err)

                {

                    MessageBox.Show("打开失败" + err.ToString(), "提示!");

                }

            else

            {

                try

                {

                    serialPort1.Close();

                }

                catch (Exception) { }

                button1.Text = "打开串口";


            }

然后呢,你就可以制作几个按键,例如

 可以通过开关灯,对应代码是发送一个数据

     try
            {
                serialPort1.Write("a");
                label8.Text = "发送成功";
            }
            catch (Exception)
            {

                label8.Text = "发送失败,请检查串口";
            }

这就是我的所有制作过程了,虽然有点短,但是我在制作的过程花费很长时间进行探索,希望这个对大家有所帮助,如果有什么不足之处,请各位多多指正,大家也可以互相学习,下面是我整个工程的文件。

链接:https://pan.baidu.com/s/1KDX7S9wLvKL3noXoJixtEQ?pwd=lkjh 
提取码:lkjh

有疑问可以私聊,谢谢配合!

  • 12
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

燃烧的奶茶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值