这一行
TitleDate = string.Format("Date: {0, -10} Title: {1, 10}" ,c.Date.ToShortDateString() ,c.Title)
显示:
Date: 8/26/2007 Title: A Title
Date: 10/13/2011 Title: A Title
Date: 11/11/2012 Title: A Title
Date: 3/1/2001 Title: A Title
我正在尝试
Date: 8/26/2007 Title: A Title
Date: 10/13/2011 Title: A Title
Date: 11/11/2012 Title: A Title
Date: 3/1/2001 Title: A Title
这些值显示在树视图的文本字段中
答案 0 :(得分:2)
我假设您在浏览器中呈现字符串时会遇到此问题。
默认情况下,浏览器会用一个空格替换多个空白字符,例如选项卡后跟两个空格将被渲染,就像只有一个空格一样。
必须通知浏览器您要在此字符串中保留所有空格。
例如,您可以使用
TitleDate = string.Format("Date: {0, -10} Title: {1, 10}" ,c.Date.ToShortDateString(), c.Title);
TitleDate.Replace(" ", " ");
此外,正如@AlexeiLevenkov在评论中指出的那样,您必须确保使用固定宽度的字体呈现文本。
答案 1 :(得分:2)
尝试使用PadRight方法
有三种可能性,你的日期字符串可能有8,9或10个字符。所以这是一个可能的(我猜),但不是优雅的解决方案:
string date = c.Date.ToShortDateString();
int lenght = date.Length;
int whiteSpace = 0;
switch (length)
{
case 8:
whitespace = 6;
break;
case 9:
whitespace = 5;
break;
case 10:
whitespace = 4;
break;
}
TitleDate = string.Format("Date: {0} Title: {1}" ,date.PadRight(whiteSpace,' '), c.Title);
TitleDate = TitleDate.Replace(" "," ");
或者您可以使用自定义DateTime Format并使其更优雅:
TitleDate = string.Format("Date: {0} Title: {1}" ,c.Date.ToString("dd/MM/yyyy") ,c.Title)
答案 2 :(得分:1)
您可以使用HTML格式。 使用CSS传递类设置将是一个好主意