/// <summary> /// フォームのロード時 /// </summary> private void QRReadForm_Load(object sender, EventArgs e) { try { // フォームの初期設定 FormSizePosition(); // その他パーツの位置調整 PartsPosition(); // カメラのデバイス初期化 if (InitVideoDevice()) { // カメラデバイスの画像取得開始 VideoCaptureStart(); // QR読取りタイマースタート TimerWait.Start(); } else { this.Close(); } } catch { this.Close(); } }
/// <summary> /// タイマーの間隔毎に呼ばれる /// </summary> private void TimerWait_Tick(object sender, EventArgs e) { // 処理中はタイマー停止させる TimerWait.Stop(); // カメラから画像を取得できれば処理 if (VideoImageView.Image != null) { // カメラ画像からQRコード認識、デコード string data = Decode(VideoImageView.Image); // デコード成功の場合 if (data != null) { // デコード結果をクラスメンバ変数へ設定 this.ReturnValue = data; // カメラの画像取得を停止 VideoCaptureStop(); // ウィンドウクローズ this.Close(); // タイマー毎の処理終了(タイマーは再開させないこと) return; } } // 処理後QR認識出来ない場合、タイマー再開 TimerWait.Start(); }