/// <summary>
        /// show the snapshot or preview picturebox in front
        /// </summary>
        /// <param name="bShow">true for snapshot
        /// false for preview</param>
        private void showSnapshot(bool bShow)
        {
#if USEGDI
            if (this.InvokeRequired)
            {
                setShowSnapShotDelegate d = new setShowSnapShotDelegate(showSnapshot);
                this.Invoke(d, bShow);
            }
            else
            {
                addLog("showSnapshot() called with " + bShow.ToString());
                if (bShow)
                {
                    // CameraSnapshot.BringToFront();
                    CameraSnapshot.Visible = true;
                    CameraPreview.Visible  = false;
                }
                else
                {
                    //CameraPreview.BringToFront();
                    CameraSnapshot.Visible = false;// BringToFront();
                    CameraPreview.Visible  = true;
                }
                _bIsSnapshotView = bShow;
                addLog("showSnapshot() call end.");
            }
#else
            return;
#endif
        }
        /// <summary>
        /// show the snapshot or preview picturebox in front 
        /// </summary>
        /// <param name="bShow">true for snapshot
        /// false for preview</param>
        private void showSnapshot(bool bShow)
        {
#if USEGDI
            if (this.InvokeRequired)
            {
                setShowSnapShotDelegate d = new setShowSnapShotDelegate(showSnapshot);
                this.Invoke(d, bShow);
            }
            else
            {
                addLog("showSnapshot() called with " + bShow.ToString());
                if (bShow)
                {
                    // CameraSnapshot.BringToFront();
                    CameraSnapshot.Visible = true;
                    CameraPreview.Visible = false;
                }
                else
                {
                    //CameraPreview.BringToFront();
                    CameraSnapshot.Visible = false;// BringToFront();
                    CameraPreview.Visible = true;
                }
                _bIsSnapshotView = bShow;
                addLog("showSnapshot() call end.");
            }
#else
            return;
#endif
        }