如何对齐作为列表框项添加的字符串
本文关键字:列表 添加 字符串 何对齐 对齐 | 更新日期: 2023-09-27 18:12:04
我有一个列表框,我想在其中显示来自字符类的名称和高分列表。我使用ListBox.Items.Add
为每个字符添加以下字符串:
public String stringHighscore()
{
return name + "'t't't" + score.ToString();
}
问题是当名字超过一定长度时,分数会被推到右边。列表框看起来像这样(对不起,我的rep还不允许我发布图像):
(链接到tinypic上的列表框图像)
我认为这可能是由于"'t",但我不确定。我该如何解决这个问题并正确调整分数?如果我使用两个列表框,一个用于人名,一个用于分数,会不会更好?
您可以使用String.PadRight
方法。
返回一个新字符串,将此字符串中的字符左对齐为指定的总长度在它们的右侧填充空格。
假设name
的最大长度为20个字符
public String stringHighscore()
{
return name + name.PadRight(20 - name.Length) + "'t't't" + score.ToString();
}
如果您的名字的长度是13
,这将添加7
空格字符。这样,你所有名字的长度将等于(20
)在结束
看看这篇csharp-examples文章:
将字符串与空格对齐。
官方参考,查看复合格式
祝你好运!
在我看来,你最好使用ListView而不是试图手动对齐任何东西。使用比使用简单的列表框要困难得多,并且所有的配置都可以在IDE中完成(我假设您正在使用VisualStudio或类似功能强大的IDE)。
假设你有一个名为scoresListView
的ListView项目。从IDE中,您可以将View属性设置为Details,这将导致列表以给定宽度的列呈现,并在顶部显示标题(我认为您希望"Name"answers"Score")。添加列的代码看起来像这样(为了可读性,我假设您在c#文件的顶部有一个using System.Windows.Forms
子句):
scoresListView.Columns.Add("Name", 200); // add the Names column of width 200 pixels
scoresListView.Columns.Add("Score", 200, HorizontalAlignment.Right); // add the Score column of width 200 pixels (Right Aligned for the sake of demonstration)
将项目(名称/分数对)添加到列表视图可以像下面这样简单:
string myName = "abcdef"; // sample data
int myScore = 450;
scoresListView.Items.Add(new ListViewItem(new string[] { myName, myScore.ToString() } )); // add a record to the ListView
对不起,没有那么多的解释,希望这对现在或将来有所帮助- ListView是一个非常有用的控件。