电子商务网站建设感想,wordpress主题 微信,广西水利电力建设集团网站,在百度建免费网站文章目录 1. 实现一个简单的倒计时器开始、暂停2. 串口助手开发 1. 实现一个简单的倒计时器开始、暂停
namespace Timer
{public partial class Form1 : Form{int count;//用于定时器计数int time;//存储设定的定时值bool parse false;//控制暂停计时public Form1(){Initiali… 文章目录 1. 实现一个简单的倒计时器开始、暂停2. 串口助手开发 1. 实现一个简单的倒计时器开始、暂停
namespace Timer
{public partial class Form1 : Form{int count;//用于定时器计数int time;//存储设定的定时值bool parse false;//控制暂停计时public Form1(){InitializeComponent();}//窗口创建初始化函数private void Form1_Load(object sender, EventArgs e){//双击窗体后在这里给下拉框添加或者在属性items里添加都可以for(int i 1; i 100; i){comboBox1.Items.Add(i.ToString() 秒);}comboBox1.Text 1秒;}private void timer1_Tick(object sender, EventArgs e){count;//记录、当前秒label3.Text (time - count).ToString() 秒;//显示剩余时间progressBar1.Value count;//设置进度条进度if(count time){timer1.Stop();//时间到停止计时System.Media.SystemSounds.Asterisk.Play();//提示音MessageBox.Show(时间到停止计时,提示);//弹出提示框count 0;progressBar1.Value 0;comboBox1.Text null;}}//开始计时按钮事件private void button1_Click(object sender, EventArgs e){if (parse true){parse false;timer1.Stop();return;}string str comboBox1.Text; //将下拉框内容添加到一个变量中time Convert.ToInt16(str.Substring(0,str.Length - 1)); //得到设定的定时值progressBar1.Maximum time;//进度条最大数值parse true;timer1.Start();//开始计时}}
}2. 串口助手开发
创建项目的时候要选带.NET Framework的窗体应用
using System;
using System.IO.Ports;
using System.Text;
using System.Windows.Forms;namespace SerialCommunicate
{public partial class Form1 : Form{public Form1(){InitializeComponent();//串口数据接收事件serialPort1.DataReceived new SerialDataReceivedEventHandler(port_DataReceived);//串口接收编码serialPort1.Encoding Encoding.GetEncoding(UTF-8);System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls false;}private void Form1_Load(object sender, EventArgs e){for(int i 1; i 20; i){comboBox1.Items.Add(COM i.ToString());}comboBox1.Text COM1;comboBox2.Text 4800;//必须手动添加事件处理器serialPort1.DataReceived new SerialDataReceivedEventHandler(port_DataReceived);}//串口数据接收事件private void port_DataReceived(object sender, SerialDataReceivedEventArgs e){if (!radioButton3.Checked)//如果为字符模式接收{string str serialPort1.ReadExisting();//字符串方式读textBox1.AppendText(str);}else//数值接收{//定义缓冲区因为串口事件触发时不是实时的byte[] data new byte[serialPort1.BytesToRead];serialPort1.Read(data, 0, data.Length);foreach(byte Member in data){string str Convert.ToString(Member, 16).ToUpper();//空位补0textBox1.AppendText(0x (str.Length 1 ? 0 str : str) );}}}private void button1_Click(object sender, EventArgs e){try{serialPort1.PortName comboBox1.Text;serialPort1.BaudRate Convert.ToInt32(comboBox2.Text);//十进制数据转换serialPort1.Open();button1.Enabled false;//打开串口按钮不可用button2.Enabled true;//关闭串口}catch{MessageBox.Show(端口错误请检查串口, 错误);}}private void button2_Click(object sender, EventArgs e){try{serialPort1.Close();button1.Enabled true;button2.Enabled false;}catch(Exception err)//一般情况下关闭串口不会出错所以不需要加处理程序{}}private void button3_Click(object sender, EventArgs e){byte[] Data new byte[1];//判断串口是否打开if (serialPort1.IsOpen){if(textBox2.Text ! ){if (!radioButton1.Checked){try{serialPort1.WriteLine(textBox2.Text);}catch (Exception err){MessageBox.Show(串口数据写入错误, 错误);serialPort1.Close();button1.Enabled true;button2.Enabled false;}}else{//取余运算防止用户输入的字符为奇数个for(int i 0; i (textBox2.Text.Length - textBox2.Text.Length % 2) / 2; i){Data[0] Convert.ToByte(textBox2.Text.Substring(i * 2, 2), 16);serialPort1.Write(Data, 0, 1);}if(textBox2.Text.Length % 2 ! 0){Data[0] Convert.ToByte(textBox2.Text.Substring(textBox2.Text.Length - 1, 1), 16);serialPort1.Write(Data, 0, 1);}}}}}}
}