您好我是c#的初学者。我需要从另一个类(udp)向Form(udpsendrecv)中的文本框追加一个值。我搜索了很多答案,但没有一个与我的问题类似。
这是我的表单和类代码。
我在字符串输出中得到的值将类似于" 2d346e234d56"。我需要将输出的子字符串附加到udpsendrecv形式的文本框中。我怎样才能做到这一点?我通过引用不同的例子尽我所能。你的答案对我很有帮助。谢谢
public partial class udpsendrecv : Form
{
public udpsendrecv()
{
InitializeComponent();
}
public void AppendTextBox(string value)
{
if (InvokeRequired)
{
this.BeginInvoke(new Action<string>(AppendTextBox), new object[] { value });
return;
}
textBox1.Text = value;
}
public void AppendTextBox1(string value)
{
if (InvokeRequired)
{
this.BeginInvoke(new Action<string>(AppendTextBox1), new object[] { value });
return;
}
textBox2.Text = value;
}
public void AppendTextBox2(string value)
{
if (InvokeRequired)
{
this.BeginInvoke(new Action<string>(AppendTextBox2), new object[] { value });
return;
}
textBox3.Text = value;
}
public void Textboxclear()
{
if (InvokeRequired)
{
this.BeginInvoke(new Action<string>(AppendTextBox1), new object[] { });
return;
}
textBox1.Clear();
}
public void UpdateTextBox(string text)
{
Invoke((MethodInvoker)delegate {
textBox1.AppendText(text + "\r\n");
});
}
}}
class UDP
{
public void Receive(IAsyncResult ar)
{
IPEndPoint ip = new IPEndPoint(IPAddress.Any, PORT_NUMBER);
byte[] bytes = udp.EndReceive(ar, ref ip);
string output= BitConverter.ToString(bytes);
int chunkSize = 4;
int stringLength = output.Length;
string[] Elements = new string[25];
int j = 0;
for (int i = 0; i < stringLength; i += chunkSize)
{
if (i + chunkSize > stringLength)
chunkSize = stringLength - i;
Elements[j] = output.Substring(i, chunkSize);
j++;
}
udpsendrecv hi = new udpsendrecv();
short a = Convert.ToInt16(Elements[0], 16);
hi.AppendTextBox(a.ToString());
short b = Convert.ToInt16(Elements[1], 16);
hi.AppendTextBox1(b.ToString());
short c = Convert.ToInt16(Elements[2], 16);
hi.AppendTextBox2(c.ToString());
}}