2015-05-04 43 views
2

這可能是一個難題,或者是一個愚蠢簡單的問題。無論哪種方式,請耐心等待,因爲我對C#頗爲陌生。使用 t在C中具有未知字符串長度的格式#

我一直在建立一個FormListBox裏面,和其他一些事情,一切都很好。哪裏有些奇怪的地方在於用信息填充所述盒子。

我的邏輯來填補這一ListBox迄今爲止一直:

foreach (var value in userList) 
{ 
    listBoxForForm.Items.Add("#" + value.internalId + " \t\t-\t" + value.title + "\t\t-\t" + value.typeName); 
} 

(不介意"\t之間的奇數!)

的問題是,這看起來很奇怪,如果某些值太長(不像value.length中的「long」,而是寬度中的「long」)。

爲了更好地解釋它,我花了一個屏幕截圖(原諒政府式的終檢):

正如你可以看到,該文本似乎問題不正確格式時在這種情況下使用\t

有沒有一種方法,我可以整齊地格式化這個文本在預期的3列風格,我要去這裏?不知道每個value中變量的長度,我的意思是?

+2

它確實*你要求它做什麼:) –

+0

@Thomas 100%正確。我只是不知道如何去描述我實際上想要做的事情;) – ViRALiC

+3

爲什麼不在用戶界面中使用某種網格控件? –

回答

3

你應該嘗試String.PadLeft()

using System; 

class Program { 
    static void Main() 
    { 
     string s = "cat".PadRight(10); string s2 = "poodle".PadRight(10); 
     Console.Write(s); 
     Console.WriteLine("feline");  
     Console.Write(s2); 
     Console.WriteLine("canine"); 
    } 
} 

將輸出:

cat  feline 
poodle canine 
+1

只能在SO代碼塊中使用,他使用可變間距字體。當填充小於短語寬度(當前的問題)時,它當然仍然不起作用,他不妨使用ListBox.CustomTabOffsets屬性。 –

0

我想你要找的是this

String.PadRight和String.PadLeft方法

1

而不是使用標籤,你應該使用String.PadRight(X)其中X是該領域的最大長度。您需要確保您的X值長於數據的最大長度,或者將數據剪輯到最大長度以確保列一致。

相關問題