void VerifiedReceiptRedirect(object sender, VerifiedReceiptEventArgs args)
        {
            EventHandler <VerifiedReceiptEventArgs> handler = new EventHandlerForControl <VerifiedReceiptEventArgs>(_form, VerifiedReceipt);

            System.Threading.Thread.Sleep(500);
            handler(null, args);
            System.Threading.Thread.Sleep(500);
        }
        public void TestWithClose()
        {
            EventHandler <VerifiedReceiptEventArgs> handler;
            VerifiedReceiptEventArgs args = new VerifiedReceiptEventArgs();

            _thread.Start();
            _form.FormCreated.WaitOne();

            try
            {
                handler = new EventHandlerForControl <VerifiedReceiptEventArgs>(_form, CloseTheForm);
                handler(null, args);
            }
            finally
            {
                _thread.Join();
            }
        }
        public void TestVisible()
        {
            EventHandler <VerifiedReceiptEventArgs> handler;
            VerifiedReceiptEventArgs args = new VerifiedReceiptEventArgs();

            _thread.Start();
            _form.FormCreated.WaitOne();

            handler = new EventHandlerForControl <VerifiedReceiptEventArgs>(_form, VerifiedReceipt);
            handler(null, args.Reset());
            Assert.IsTrue(args.Received);
            Assert.IsTrue(args.OnThread);

            handler = new EventHandlerForControl <VerifiedReceiptEventArgs>(_form, new VerifiedReceiptEventHandler(VerifiedReceiptRedirect));
            handler(null, args.Reset());
            Assert.IsTrue(args.Received);
            Assert.IsTrue(args.OnThread);

            _form.BeginInvoke((Action)_form.Close);
            _thread.Join();
        }
		void VerifiedReceiptRedirect(object sender, VerifiedReceiptEventArgs args)
		{
			EventHandler<VerifiedReceiptEventArgs> handler = new EventHandlerForControl<VerifiedReceiptEventArgs>(_form, VerifiedReceipt);
			System.Threading.Thread.Sleep(500);
			handler(null, args);
			System.Threading.Thread.Sleep(500);
		}
		public void TestWithClose()
		{
		    EventHandler<VerifiedReceiptEventArgs> handler;
		    VerifiedReceiptEventArgs args = new VerifiedReceiptEventArgs();

		    _thread.Start();
		    _form.FormCreated.WaitOne();

		    try
		    {
		        handler = new EventHandlerForControl<VerifiedReceiptEventArgs>(_form, CloseTheForm);
		        handler(null, args);
		    }
		    finally
		    {
		        _thread.Join();
		    }
		}
		public void TestVisible()
		{
		    EventHandler<VerifiedReceiptEventArgs> handler;
		    VerifiedReceiptEventArgs args = new VerifiedReceiptEventArgs();
			
		    _thread.Start();
		    _form.FormCreated.WaitOne();

		    handler = new EventHandlerForControl<VerifiedReceiptEventArgs>(_form, VerifiedReceipt);
		    handler(null, args.Reset());
		    Assert.IsTrue(args.Received);
		    Assert.IsTrue(args.OnThread);

		    handler = new EventHandlerForControl<VerifiedReceiptEventArgs>(_form, new VerifiedReceiptEventHandler(VerifiedReceiptRedirect));
		    handler(null, args.Reset());
		    Assert.IsTrue(args.Received);
		    Assert.IsTrue(args.OnThread);

		    _form.BeginInvoke((Action)_form.Close);
		    _thread.Join();
		}