文本框为空

本文关键字:文本 | 更新日期: 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;
}

这对你有用吗?如果不是,那么就有其他非常错误的东西,从你的代码中不明显