将值组合在一起使用C#在Label中显示

时间:2017-09-25 21:37:08

标签: c# winforms

我有一个情况,需要一些帮助来解决这个问题。 enter image description here

我不允许将图片直接嵌入帖子中。正如您可以看到图像一样,数据显示在gridview中,但客户希望它显示为文本下方的文本,如gridivew下面的文本。但是,需要一起显示具有共同日期的文件名。例如:2015年4月18日,有两个不同的文件条目,并希望PAYROLL _ ****** 20150429.csv显示在PAYROLL ***** _ 20150422.csv下。因此不需要第三次进入,只需要第二次和第三次进入俱乐部。可能存在具有相同日期条目的不同文件,并且它们需要被组合在一起。第一个名称191_20150418基于日期条目。

我在C#中使用Win表单。我已将数据收集到数据表中以显示在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;

如果在标签中添加这样的内容不可行,请建议更好的方法。

1 个答案:

答案 0 :(得分: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():

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"]);

如果您使用的是C#6 / .NET 4.6,则为string interpolation

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

看起来您正在使用DataTable来访问此数据,但将来如果您使用的是自定义类,则可以使用上述任何一种方法覆盖类的ToString()方法:< / p>

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();