2017-04-25 8 views
0

私は2つのフォームを使ってアプリケーションを作成しています。 私のメインフォーム1には、ボタンで接続されたスキャナがあります。 私は私のフォーム2にテキストボックスを持っています。このテキストボックスには、ここにスキャンされる情報が必要です。 私のフォーム1にテキストボックスはありません。C#2のフォームにスキャナ文字列を送る方法

私はこれを行う方法を理解していないようだ私はいずれかのヒントを持っていた場合私は疑問に思っていた。

これは私がフォーム2 ..letのコールでプロパティまたはフィールドを作成しますスキャナ


/// Event Handler for Scanner Setup Button 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    private void scannerFormBTN_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      //If the Button is yellow , disconnect the hand scanner 
      if (scannerBTN.BackColor == Color.LightGreen) 
      { 
       scanner.ReadStringArrived -= new ReadStringArrivedHandler(OnReadStringArrived); 
       scanner.Disconnect(); 
       scanner = null; 
       scannerFormBTN.BackColor = Color.IndianRed; 
       this.scannerFormBTN.Text = "Setup Hand Scanner"; 
       MessageBox.Show("Hand Scanner Disconnected.", "Alert"); 
      } 
      //If scanner is not connected 
      else 
      { 
       Setupscanner scannerForm = new Setupscanner(); //Instantiate the Scanner Form 
       //Show the form. DialogResult = yes if Scanner is connected successfully. 
       DialogResult connection_successfull = scannerForm.ShowDialog(); 
       if (connection_successfull == DialogResult.Yes) 
       { 
        this.scanner = scannerForm.sys; //Set the Local Hand Scanner variable to the successfully connected scanner 
        if (scanner.IsConnected) 
        { 
         scanner.ReadStringArrived += new ReadStringArrivedHandler(OnReadStringArrived); //Register Read String event. 
         scannerFormBTN.Text = "Hand Scanner Connected. Click to Disconnect"; 
         scannerBTN.BackColor = Color.LightGreen; //Change the color of the Hand Scanner Button 
        } 
       } 
      } 
     } 

     catch (Exception ex) { MessageBox.Show("There was an error. Exception reads : \n\n " + ex.Message, "Error"); } 
    } 

    /// <summary> 
    /// Event that gets fired when string arrives from a connected hand scanner 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="args"></param> 
    private void OnReadStringArrived(Object sender, ReadStringArrivedEventArgs args) 
    { 
     SetSerNumber(args.ReadString); 
    } 

    /// <summary> 
    /// Used to set the Serial Number to the incoming Scanner String 
    /// </summary> 
    /// <param name="msg"></param> 
    private void SetSerNumber(string msg) 
    { 
     //If the event is fired on a different thread than the control was created 
     if (Part_Code_Text_Box.InvokeRequired) 
     { 
      SetSerialNumber S = new SetSerialNumber(SetSerNumber); 
      this.Invoke(S, new object[] { msg }); //Invoke the delegate S on the current thread 
     } 
     else 
     { 
      Part_Code_Text_Box.Text = msg.Trim(); 
     } 
    } 

答えて

0

を設定することができますフォーム1のコードである


ありがとうそれは今StringFromScannerです。 別のものを表示したいときuはおそらくオブジェクトをそこから作成します...このオブジェクトのStringFromScannerをあなたが持っている文字列に設定し、2番目のフォームを開くときこのプロパティの文字列の値とu任意のコントロールに割り当てることができ

形式で

フォームで1

Form2 objectfromform2 = new Form2(); 
objectfromform2.StringFromScanner = MyString; 
objectfromform2.Show(); 
MytextBox.Text = StringFromScanner 

あなたはまた、プロパティを忘れると同じ結果をAchiveするにはコンストラクタを使用することができます

関連する問題