2017-03-29 5 views
-5

私は別のWinフォームからデータを読み取ることができるWinフォームを作成していますが含まれていませんが、私は私の機能にいくつかのエラーを受け取る:C#のオブジェクトが定義エラー

namespace stackkcw 
    { 
    public partial class Form1 : Form 
    { 
     public TcpClient client; 
     private object datgdStock; 
     private object lablUpdates; 
     private object lablTime; 
     private int countOfData; 



     public Form1() 
     { 

      InitializeComponent(); 
     } 
     private void UpdateGrid(StockDetails data) 
     { 

      datgdStock.Rows[data.StockId].Cells[0].Value = data.StockName; 
      datgdStock.Rows[data.StockId].Cells[1].Value = data.StockPrice; 
      datgdStock.Rows[data.StockId].Cells[2].Value = data.StockChange; 

     } 
     private void UpdateLbl(StockDetails data) 
     { 
      countOfData++; 

      lablUpdates.Invoke(new Action(() => lablUpdates.Text =   countOfData.ToString())); 
      lablTime.Invoke(new Action(() => lablTime.Text = data.Time.ToString())); 

     } 


     private void button1_Click(object sender, EventArgs e) 
     { 
      DataReceiver data = new DataReceiver(); 



      data.connect(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text)); 
      // Pass input in txtIP as an IPAddress and the input in txtPort as an int. 
      button1.Enabled = false; // Disable button connect on valid data sending to data reciever class. 
      textBox1.Enabled = false; // Disable ip text box on valid data sending to data receiver class 
      textBox2.Enabled = false; // disable port text box on valid data sending to data receiver class 
      data.dataRecieved += new DataReceiver.DataRecived(UpdateGrid); 

      data.dataRecieved += new DataReceiver.DataRecived(UpdateLbl); 


     } 
     public struct StockDetails 
     { 

      public int StockId; 
      public string StockName; 
      public double StockPrice; 
      public double StockChange; 
      public DateTime Time; 
     } 
     class DataReceiver 
     { 
      public delegate void DataRecived(StockDetails stockData); 
      public event DataRecived dataRecieved; 
      StockDetails data; 

      private TcpClient StockClient; 

      private Thread listeningThread = null; 

      public void connect(IPAddress ip, int port) 
      { 
       StockClient = new TcpClient(); 
       StockClient.Connect(ip, port); 

       MessageBox.Show("Connected to: " + ip.ToString()); 

       listeningThread = new Thread(new ThreadStart(listen)); 
       listeningThread.Start(); 
      } 


      public void listen() 
      { 
       NetworkStream stream = StockClient.GetStream(); 

       while (true) 
       { 
        byte[] buffer = new byte[256]; 
        int no_of_bytes = stream.Read(buffer, 0, 256); 

        JavaScriptSerializer Serializer = new JavaScriptSerializer(); 
        data = Serializer.Deserialize<StockDetails>(Encoding.ASCII.GetString(buffer, 0, no_of_bytes)); 

        OnDataRecived(); 
       } 

      } 

      protected virtual void OnDataRecived() 
      { 
       dataRecieved(data); 
      } 
     } 


    } 
} 
+0

あなたのコードを見て、あなたが受け取ったエラーが何であるか把握しようとする人がいると想像してください。あなたがこの情報をすべて持っていることを彼/彼女が認識したときに、それが反応すると思いますが、このコードの壁の終わりにあなたはそれを提供しませんでした。 – Steve

+0

"しかし、私はいくつかのエラーを受け取ります" ...そして、どのようにこれらのエラーが何であるか教えてください? –

+0

申し訳ありません。エラーは次のとおりです。オブジェクトに "Text"の定義がなく、拡張メソッドがありません。 "text"タイプの最初の引数を受け入れる "Text"が見つかりました。 RowとInvokeについても同様です。 – user7716102

答えて

0

は、これらの特性のためにオブジェクトを使用していないD

private DataGridView datgdStock; 
     private TextBox lablUpdates; 
     private TextBox lablTime; 
+0

ありがとう – user7716102

関連する問題