[英]I have a Qr generator application written in C#. So now i want to generate Qr Code that willl change in every 10 seconds during runtime
我想生成动态二维码,所以请帮助我如何构建一个动态二维码生成器,该生成器将在运行期间每 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);
}
您需要在 Forms 项目中添加一个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
元素。
嗨,您可以尝试这种方法,这将实例化计时器以触发您设置的每毫秒间隔。
private void Form1_Load(object sender, EventArgs e)
{
System.Timers.Timer timerInterval = new System.Timers.Timer();
timerInterval.Elapsed += new ElapsedEventHandler(OnTimedEvent);
timerInterval.Interval = 10000;
timerInterval.Enabled = true;
}
private static void OnTimedEvent(object source, ElapsedEventArgs 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);
if(pcQRImage!=null)
{
pcQRImage.Dispose();
pcQRImage.Image = code.GetGraphic(50);
}
else
{
pcQRImage.Image = code.GetGraphic(50);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.