0

私はチュートリアルに取り組んでおり、Web フォームの書式設定にわずかな問題があります。出力された数値が 2 桁に達すると、位置合わせがオフになり、右にシフトするようです。数字を正しく揃えるためのコツはありますか?

これが私のコードです:

 private void btnDisplay_Click(object sender, EventArgs e)
    {
        for (int i = 0; i <= 10; i++)
        {
            lblProduct.Text += String.Format(i + "   ").PadRight(10);
            for (int j = 1; j <= 10; j++)
            {
                if (i > 0) lblProduct.Text += String.Format(i * j + "   ").PadRight(10);
                else lblProduct.Text += String.Format(j + "   ").PadRight(10);
            }
            lblProduct.Text += "\n";
        }
    }
4

2 に答える 2

2

一般に、左寄せして 3 文字にパディングするには、次を使用します。

String.Format("{0,-3}",i)

だからあなたのケースの使用のために

lblProduct.Text += String.Format("{0,-3}",i);
for (int j = 1; j <= 10; j++)
{
    if (i > 0) lblProduct.Text += String.Format("{0,-3}",i * j);
    else lblProduct.Text += String.Format("{0,-3}",j);
}
lblProduct.Text += "\n";
于 2013-10-28T18:40:47.513 に答える
1

これは表形式のデータであり、<TABLE>タグが発明された理由です。

スタイルシートで:

<style>
.ProductTable
{
    text-align: right;
}
</style>

aspx ファイルで:

<asp:Table id="tblProduct" CssClass="ProductTable" runat="server">

あなたのコードで:

private void btnDisplay_Click(object sender, EventArgs e)
{
    for (int i = 0; i <= 10; i++)
    {
        TableRow tr = new TableRow();
        tblProduct.Rows.Add(tr);

        TableCell td = new TableCell();
        td.Text = i.ToString();
        tr.Cells.Add(td);

        for (int j = 1; j <= 10; j++)
        {
            td = new TableCell();
            tr.Cells.Add(td);
            td.Text = (i * j).ToString;
        }
    }
}
于 2013-10-28T18:55:34.290 に答える