2017-09-25 60 views
0

我有一種情況,需要一些幫助來解決這個問題。 enter image description here將數值分組在一起使用C標籤顯示標籤#

我不允許直接在帖子中嵌入圖片。正如您可以看到圖像一樣,數據顯示在gridview中,但客戶端希望它顯示爲一個在另一個之下的文本,如gridivew下面的文本。但是,需要一起顯示具有通用日期的文件名。例如:04/18/2015,有兩個不同的文件條目,並希望PAYROLL _ ****** 20150429.csv顯示在PAYROLL ***** _ 20150422.csv下。所以不需要第三次進入,只需要第二和第三次進攻。可能有不同的文件具有相同的日期條目,並且需要將它們組合在一起。第一個名稱191_20150418基於日期條目。

我使用Win窗體與C#。我已經收集了數據表中的數據以顯示在gridview中。 這是我下面的代碼在標籤中顯示:

Label.Text += Environment.NewLine + "Name : " + dtSWAction.Rows[i]["Name"] + Environment.NewLine + 
              "PPED : " + dtSWAction.Rows[i]["Date"] + Environment.NewLine + 
              "Files : " + dtSWAction.Rows[i]["Files"] + Environment.NewLine; 

請提出一個更好的方式,如果在標籤附加這樣是不可行的。

+2

如果它起作用,什麼構成「更好的方式」? – LarsTech

+1

您可以使用'string.Format()'或字符串插值(即'$「」'')。如果這些值出自你創建的類,你可以在一個覆蓋'ToString()'方法中添加這個邏輯 – maccettura

回答

1

真的是沒有什麼錯這樣做:

Label.Text += 
    Environment.NewLine + "Name : " + dtSWAction.Rows[i]["Name"] + 
    Environment.NewLine + "PPED : " + dtSWAction.Rows[i]["Date"] + 
    Environment.NewLine + "Files : " + dtSWAction.Rows[i]["Files"] + 
    Environment.NewLine; 

但是你可以使用的String.format():如果你使用的是C#6

Label.Text += string.Format("{0}Name : {1}{0}PPED : {2}{0}Files : {3}{0}", 
    Environment.NewLine, 
    dtSWAction.Rows[i]["Name"], 
    dtSWAction.Rows[i]["Date"], 
    dtSWAction.Rows[i]["Files"]); 

或者string interpolation/.NET 4.6:

Label.Text += $"{Environment.NewLine}Name : {dtSWAction.Rows[i]["Name"]}{Environment.NewLine}PPED : {dtSWAction.Rows[i]["Date"]}{Environment.NewLine}Files : {dtSWAction.Rows[i]["Files"]}{Environment.NewLine}"; 

看起來你是使用數據表來訪問此數據,但如果您使用的是自定義的類將來你可以覆蓋使用上述方法中的任何一個類的ToString()方法:

public override string ToString() 
{ 
    return string.Format("{0}Name : {1}{0}PPED : {2}{0}Files : {3}{0}", 
     Environment.NewLine, 
     dtSWAction.Rows[i]["Name"], 
     dtSWAction.Rows[i]["Date"], 
     dtSWAction.Rows[i]["Files"]); 
} 

然後隨時在將來你可以這樣稱呼它:

Label.Text += instanceOfYourClass.ToString(); 
+0

你可以看看附加的圖像,它是我的問題中的鏈接。我試圖顯示兩個不同的文件名,並且沒有兩個條目,就像我現在所做的那樣。 –