我正在从另一个类调用公共方法。它将List作为参数,并通过列表将每个项目打印到文本字段中。问题是文本字段仍然是空的!我已经检查过列表是通过将项目输出到控制台来填充的,然后我将它放入文本框中,文本在那里很好。
该列表包含字符串,应将每个字符串输出到文本字段,后跟半冒号。
这是被称为的方法:
public void fillAttachment(List<string> attachList)
{
for (int i = 0; i < attachList.Count; i++)
{
Console.WriteLine("List: " + attachList[i]);
txtAttach.Text += attachList[i] + ";";
}
}
答案 0 :(得分:4)
我会用这种方式解决它:
foreach(var attach in attachList)
{
Console.WriteLine(attach);
txtAttach.AppendText(string.Format("{0};", attach));
}
答案 1 :(得分:3)
在文本框中设置text属性并且不显示该属性可以是以下之一:
您是否可以实例化表单对象的第二个副本,并且您要在此表单中设置txtAttach文本属性?
您期望填充的控件可能是另一个控件吗?右键单击要在单击属性中显示文本的文本框,然后检查名称。
右键单击txtAttach.Text并单击Find All References,这将显示项目中引用Text属性(写入和读取)的所有位置。这是一种非常有用的方法来定位与此控件的其他交互。
字体是否太小,或与背景颜色相同。你能在文本框中选择文字吗?
测试以上所有内容的最简单方法是在表单上使用不同的名称创建一个新的文本控件,更改代码以填充它,检查它是否确实已填充,然后替换旧的。
顺便说一下,你也可以用一行来减少代码,如下所示:
public void fillAttachment(List<string> attachList)
{
txtAttach.Text = String.Join(";", attachList.ToArray());
}
虽然这显然会跳过控制台写行功能。
答案 2 :(得分:2)
不确定为什么你的不行,但我会这样做......
public void fillAttachment(List<string> attachList)
{
string result = "";
//OR (if you want to append to existing textbox data)
//string result = txtAttach.Text;
for (int i = 0; i < attachList.Count; i++)
{
Console.WriteLine("List: " + attachList[i]);
result += attachList[i] + ";";
}
txtAttach.Text = result;
}
这对你有用吗?如果没有,那么还有其他一些非常错误的东西,这在您的代码中并不明显