c#对象不包含定义错误

c#对象不包含定义错误,c#,C#,我正在创建一个winform,它可以从另一个winform读取数据,但我在函数中收到一些错误: namespace stackkcw { public partial class Form1 : Form { public TcpClient client; private object datgdStock; private object lablUpdates; private object lablTime

我正在创建一个winform,它可以从另一个winform读取数据,但我在函数中收到一些错误:

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);
            }
        }


    }
}
命名空间堆栈KCW
{
公共部分类Form1:Form
{
公共TCP客户机;
私有对象股票;
私有对象更新;
私有对象时间;
私有数据;
公共表格1()
{
初始化组件();
}
私有void UpdateGrid(StockDetails数据)
{
datgdStock.Rows[data.StockId]。单元格[0]。值=data.StockName;
datgdStock.Rows[data.StockId]。单元格[1]。值=data.StockPrice;
datgdStock.Rows[data.StockId]。单元格[2]。值=data.StockChange;
}
私有void UpdateLbl(StockDetails数据)
{
countOfData++;
调用(新操作(()=>lablUpdates.Text=countOfData.ToString());
调用(新操作(()=>lablTime.Text=data.Time.ToString());
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
DataReceiver data=新DataReceiver();
data.connect(IPAddress.Parse(textBox1.Text)、int.Parse(textBox2.Text));
//将txtIP中的输入作为IP地址传递,将txtPort中的输入作为int传递。
button1.Enabled=false;//在向数据接收器类发送有效数据时禁用按钮连接。
textBox1.Enabled=false;//在向数据接收方类发送有效数据时禁用ip文本框
textBox2.Enabled=false;//禁用发送到数据接收方类的有效数据的端口文本框
data.datareceived+=新的DataReceiver.datareceived(UpdateGrid);
data.datareceived+=新的DataReceiver.datareceived(UpdateLbl);
}
公共结构详细信息
{
公共int StockId;
公共字符串股票名称;
公开双股票价格;
公开双股换股;
公共日期时间;
}
类数据接收器
{
收到公共代表无效数据(StockDetails stockData);
公共事件数据已接收数据已接收;
股票详细信息数据;
私人TCP客户股票客户;
私有线程ListingThread=null;
公共无效连接(ip地址ip,int端口)
{
StockClient=新的TcpClient();
连接(ip,端口);
Show(“连接到:+ip.ToString());
ListengThread=新线程(新线程开始(侦听));
listingThread.Start();
}
公共图书馆
{
NetworkStream=StockClient.GetStream();
while(true)
{
字节[]缓冲区=新字节[256];
int no_of_bytes=stream.Read(缓冲区,0,256);
JavaScriptSerializer Serializer=新的JavaScriptSerializer();
data=Serializer.Deserialize(Encoding.ASCII.GetString(缓冲区,0,无字节数));
OnDataReceived();
}
}
受保护的虚拟void OnDataReceived()
{
接收到的数据(数据);
}
}
}
}

D对这些属性不使用对象

 private DataGridView datgdStock;
        private TextBox lablUpdates;
        private TextBox lablTime;

现在想象有人看着你的代码,试图找出你收到的错误是什么。当他/她意识到你拥有所有这些信息,但在这堵代码墙的末尾你没有提供这些信息时,你认为它会有什么反应?“但我收到一些错误”。。。告诉我们这些错误是什么好吗?对不起。错误是:对象不包含“Text”的定义,并且找不到接受类型为“Object”的第一个参数的扩展方法“Text”。Row和Invoke也是一样。现在你希望我们在你的代码墙中找到确切的行吗?这是一个谜还是你最终会告诉我们你的编译器抱怨的那一行?第36-37-38和45-46行。非常感谢