文本框为空
本文关键字:文本 | 更新日期: 2023-09-27 18:11:14
我正在从另一个类调用公共方法。它接受List作为参数,并遍历列表,将每个项打印到文本字段中。问题是文本字段仍然是空的!在将项目放入文本框之前,我已经检查了列表是否通过将项目输出到控制台来填充,并且文本在那里显示得很好。
列表包含字符串,并且应该将每个字符串输出到文本字段,后面跟着一个分号。
这是被调用的方法:
public void fillAttachment(List<string> attachList)
{
for (int i = 0; i < attachList.Count; i++)
{
Console.WriteLine("List: " + attachList[i]);
txtAttach.Text += attachList[i] + ";";
}
}
我将这样解决:
foreach(var attach in attachList)
{
Console.WriteLine(attach);
txtAttach.AppendText(string.Format("{0};", attach));
}
设置文本框的text属性而不显示,可能是下列情况之一:
- 当你在 中设置文本时,你看到的不是同一个控件
您是否已经实例化了表单对象的第二个副本,并且您正在其中设置txtAttach文本属性?
您希望填充的控件可能是另一个控件吗?右键单击要显示文本的文本框,单击属性并检查名称。
- 设置文本框后,其他东西正在清除文本框
右键单击txtAttach。文本并单击"查找所有引用",这将显示文本属性在项目中被引用的所有位置-写入和读取。这是一种非常有用的方法来定位与此控件的其他交互。
- 格式化使文本框显示为空
字体太小,或者与背景颜色相同。您可以在文本框中选择文本吗?
测试上述所有内容的最简单方法是在表单上创建一个新的文本控件,使用不同的名称,更改代码以填充它,检查它是否确实填充,然后替换旧的。
作为题外话,您还可以用一行代码减少代码,如下所示:public void fillAttachment(List<string> attachList)
{
txtAttach.Text = String.Join(";", attachList.ToArray());
}
虽然这明显跳过了控制台写行功能。
不知道为什么你的不工作,但我会这样做…
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;
}
这对你有用吗?如果不是,那么就有其他非常错误的东西,从你的代码中不明显