繁体   English   中英

C#文本框保持为空

[英]C# Text box remaining empty

我正在从另一个类调用公共方法。 它接受一个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.Text,然后单击“查找所有引用”,这将向您显示在项目中引用Text属性的所有位置(写入和读取)。 这是查找与此控件进行其他交互的非常有用的方法。

  • Fomatting使文本框显示为空

字体是否太小或与背景颜色相同。 您可以在文本框中选择文本吗?

测试以上所有内容的最简单方法是在表单上使用不同的名称创建一个新的文本控件,更改代码以填充它,检查它是否确实填充,然后替换旧的。

顺便说一句,您也可以用以下一行代码减少代码:

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;
}

那对你有用吗? 如果不是这样,那么您的代码中就不会出现明显的其他错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM