1

このライブラリを使用して QRcode を WinForm アプリケーションに生成していますが、OnPaint() メソッドの使用方法がよくわかりません。

だから私はこれを持っています:

public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();
  }

  protected override void OnPaint(PaintEventArgs e)
  {
    QrEncoder encoder = new QrEncoder(ErrorCorrectionLevel.M);
    QrCode qrCode;
    encoder.TryEncode("link to some website", out qrCode);

    new GraphicsRenderer(new FixedCodeSize(200, QuietZoneModules.Two))
                             .Draw(e.Graphics, qrCode.Matrix);

    base.OnPaint(e);
  }

  private void Form1_Load(object sender, EventArgs e)
  {
    this.Invalidate();
  }
}

フォームに単純な pictureBox があり、そこに QRcode イメージを生成したいだけです (picturebox で生成できる場合)。

4

2 に答える 2

1

画像をピクチャーボックスに入れていて、画像を一度しか生成しない場合は、ペイント方法について心配する必要はありません (アニメーションなどを行っているのではなく、単なる QR コードです)。

フォームの読み込み (または画像を生成する場所) でこれを行うだけです。

mypicturebox.Image = qrCodeImage;

更新 - ライブラリを容易にする追加コード

    var bmp = new Bitmap(200, 200);
    using (var g = Graphics.FromImage(bmp))
    {
        new GraphicsRenderer(
            new FixedCodeSize(200, QuietZoneModules.Two)).Draw(g, qrCode.Matrix);
    }
    pictureBox1.Image = bmp;
于 2013-04-30T07:33:28.033 に答える