【发布时间】:2014-06-04 10:02:46
【问题描述】:
我在使用从 form2 到 form1 的方法时遇到问题。错误是“对象引用未设置为对象的实例”。而且我无法弄清楚我做错了什么。我还是表单编程的初学者,而且我很难过。
这是我在 form1 中的代码:
// showing form2 and pass the value of the _handle
private void sendMessageToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (ListViewItem item in listView1.SelectedItems)
{
int _handle = (int)item.Tag;
sf = new SendForm(_handle);
sf.Show();
}
}
// sending message using socket
public void sendT(int _handle, string msg)
{
byte[] sdata = Encoding.ASCII.GetBytes(msg);
serverSocket[_handle].Send(sdata, 0, sdata.Length, 0);
}
这是我的 form2 代码:
Main m = new Main();
int handle;
public SendForm(int handle)
{
InitializeComponent();
this.handle = handle;
}
private void button1_Click(object sender, EventArgs e)
{
m.sendT(handle, "msgbox||test message||warning");
}
我不知道如何解决这个问题。
【问题讨论】:
-
哪一行会报错?该错误意味着某些东西在运行时具有
null值,并且您的代码假定它具有有效值。 -
我认为你没有设置句柄任何值
-
SendForm需要了解您的主要表单,目前不需要。