c#对象不包含定义错误
我正在创建一个winform,它可以从另一个winform读取数据,但我在函数中收到一些错误:c#对象不包含定义错误,c#,C#,我正在创建一个winform,它可以从另一个winform读取数据,但我在函数中收到一些错误: namespace stackkcw { public partial class Form1 : Form { public TcpClient client; private object datgdStock; private object lablUpdates; private object lablTime
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行。非常感谢