我在Windows窗体中有以下代码:
for (int i = 1; (i <= 10); i++)
{
if ((worker.CancellationPending == true))
{
e.Cancel = true;
break;
}
else
{
try
{
string message = "";
string m = "";
textBox2.Text = "";
int count = 0;
while (TestConnection(client))
{
char tt = ' ';
try
{
tt = Convert.ToChar(sr.Read());
if (count < 4)
{
message = tt.ToString();
m += message;
count += 1;
}
else if (count >= 4)
{
this.Invoke(new BindTextBoxControl(UpdateTextbox), new object[] {m + "\r\n"});
textBox2.Text = m + "\r\n";
m = "";
count = 0;
}
}
catch (OverflowException)
{
m += "";
}
}
}
catch (Exception g)
{
string error = "An error occurred: '{0}'" + g;
}
这将从StreamReader获取连续的数据流,然后显示数据(4个字符串)。它应该用新的字符串替换显示的当前字符串(如果字符串是rrrr然后我收到tttt它显示tttt)但它的作用是删除当前字符串的第一个字母并添加下一个复活的字母(有rrrr)得到tttt显示rrrt然后rrtt等等。)
如何让它正常工作?
编辑:
private void UpdateTextbox(string _Text)
{
textBox1.Text = _Text;
}
delegate void BindTextBoxControl(string text);
没有什么特别的。