如何对齐作为列表框项添加的字符串

本文关键字:列表 添加 字符串 何对齐 对齐 | 更新日期: 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是一个非常有用的控件。