public SSMEmulatorForm()
 {
     InitializeComponent();
     ssmcomout1 = new SSMComOUT();
     ssmcomout1.SSMCOMOUTErrorOccured += ssmcomout1_SSMCOMOUTErrorOccured;
     _communicate_start = false;
 }
        private void ssmcomout1_SSMCOMOUTErrorOccured(Object sender, SSMCOMErrorEventArgs args)
        {
            // UIとは別スレッドからの実行のため、Invokeメソッドを使ってスレッドセーフにする(通信スレッドからUIスレッドに委譲)
            // コントロールを生成したスレッドの場合 InvokeRequired は false となります。
            if (this.InvokeRequired)
            {
                // コントロールを生成したスレッドに処理を委譲します。
                this.Invoke((MethodInvoker) delegate() { ssmcomout1_SSMCOMOUTErrorOccured(sender, args); });
                return;
            }

            SSMComOUT senderobj = (SSMComOUT)sender;

            MessageBox.Show(args.Message, "SSMCOMError", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            _communicate_start = false;
            buttonStart.Text   = "Start";
        }
 public SSMEmulatorForm()
 {
     InitializeComponent();
     ssmcomout1         = new SSMComOUT();
     _communicate_start = false;
 }