首页 > 解决方案 > 我有一个用 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);

    }

标签: c#visual-studiowinformsqr-code

解决方案


您需要添加一个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元素是必要的。


推荐阅读