public void SetupAndPrint() { WaitForm.StartAsync(this); printComponent.Setup(); printComponent.Print(this); WaitForm.Stop(this); }
public static void Start(Form owner, int delay) { owner.FormClosed += new FormClosedEventHandler(Owner_FormClosed); WaitForm form = new WaitForm(); form.MaxDelay = delay; ms_forms[owner] = form; form.ShowDialog(owner); }
public static void StartAsync(Form owner) { Point point = owner.DesktopLocation; Size size = owner.Size; new Thread(() => { WaitForm form = new WaitForm(); point.Offset(size.Width, size.Height); form.DesktopLocation = point; ms_forms[owner] = form; owner.FormClosed += new FormClosedEventHandler(form.CloseAsyncForm); Application.Run(form); owner.FormClosed -= new FormClosedEventHandler(form.CloseAsyncForm); }) { IsBackground = true }.Start(); }
protected override void WndProc(ref Message m) { switch (m.Msg) { case user32.WM_COPYDATA: { //The scaning Form sends ready status //Get image from appslot IntPtr sender; string text = WinMsg.ReceiveText(m.LParam, out sender); if (!string.IsNullOrEmpty(text)) { if (text.StartsWith(Strings.VScan_EditItem)) { new MethodInvoker(() => { const int MAX_OPENED_FORMS = 5; int openedForms = ScanAppContext.Default.OpenFormsOf <VoucherForm>().Count(); int settings = SettingsTable.Get <int>(Strings.VScan_MaximumOpenedScanForms, MAX_OPENED_FORMS); if (openedForms > settings) { WinMsg.SendText(sender, Strings.VScan_StopTheScanner); throw new AppExclamationException("Too many opened windows in editor.\nStop scanning."); } }).FireAndForget(); var data = DataSlot.Get <Voucher>(text); Debug.Assert(data != null && data.VoucherImage != null && !string.IsNullOrEmpty(data.Message), "MainForm.WndProc"); try { VoucherForm form = AddNewChild(); form.Canvas.Update(data); } finally { if (VoucherMonitorForm.IsStarted) { VoucherMonitorForm.ShowImage(text); } DataSlot.Free(text); } } else if (text.StartsWith(Strings.VScan_ItemSaved)) { string[] msgs = text.Split('|'); if (msgs.Length > 1) { tssLabel1.Text = msgs[0]; tssLabel2.Text = msgs[1]; } if (VoucherMonitorForm.IsStarted) { VoucherMonitorForm.ShowImage(text); } DataSlot.Free(text); } else if (text.CompareNoCase(Strings.VScan_ScanIsDoneEvent)) { WaitForm.Stop(this); } else if (string.Compare(text, Strings.Transferring_RemoteLock) == 0) { Lock(); } } } break; default: base.WndProc(ref m); break; } }
private void Scan() { WaitForm.StartAsync(this); ScanForm.Start(this.Handle); }
public void PrintPreview() { WaitForm.StartAsync(this); printComponent.PrintPreview(this); WaitForm.Stop(this); }