c# - 我有一个用 C# 编写的 Qr 生成器应用程序。所以现在我想生成在运行时每 10 秒改变一次的 Qr 代码
问题描述
我想生成动态二维码,所以请帮助我如何构建一个动态二维码生成器,该生成器将在运行期间每 10 秒更改一次
private void btnGenerate_Click(object sender, EventArgs e)
{
QRCoder.QRCodeGenerator QRGenerator = new QRCoder.QRCodeGenerator();
DateTime now = DateTime.Now;
dateTimePickerDate.Text = now.ToLongDateString();
txtTime.Text = now.ToShortTimeString();
var qrText = cmbSubject.Text + "\n" + txtSection.Text + "\n" + dateTimePickerDate.Text + "\n" + txtTime.Text + "\n";
var MyData = QRGenerator.CreateQrCode(cmbSubject.Text + ",\n" + txtSection.Text + ", \n" + dateTimePickerDate.Text + ",\n" + txtTime.Text + ",\n" + txtIP.Text + ",\n", QRCoder.QRCodeGenerator.ECCLevel.H);
var code = new QRCoder.QRCode(MyData);
pcQRImage.Image = code.GetGraphic(50);
}
解决方案
您需要添加一个Timer
到您的表单项目,例如:
private Timer timerInterval = new Timer();
private QRCoder.QRCodeGenerator QRGenerator = new QRCoder.QRCodeGenerator();
private void btnGenerate_Click(object sender, EventArgs e)
{
timerInterval.Enabled = true;
timerInterval.Tick += timerInterval_Tick;
timerInterval.Interval = 10000;
timerInterval.Start();
}
private void timerInterval_Tick(object sender, EventArgs e)
{
DateTime now = DateTime.Now;
dateTimePickerDate.Text = now.ToLongDateString();
txtTime.Text = now.ToShortTimeString();
var qrText = cmbSubject.Text + "\n" + txtSection.Text + "\n" + dateTimePickerDate.Text + "\n" + txtTime.Text + "\n";
var MyData = QRGenerator.CreateQrCode(cmbSubject.Text + ",\n" + txtSection.Text + ", \n" + dateTimePickerDate.Text + ",\n" + txtTime.Text + ",\n" + txtIP.Text + ",\n", QRCoder.QRCodeGenerator.ECCLevel.H);
var code = new QRCoder.QRCode(MyData);
pcQRImage.Image = code.GetGraphic(50);
}
也可以使用System.Threading.Timer
,但是这对Invoke
您的Form
元素是必要的。