簡體   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