我正在尝试使 textarea 中的产品价格成为一条直线。但是,由于产品名称的长度不同,因此需要不同数量的“\t”才能使价格垂直对齐。
这是我正在尝试做的一个示例:
string text = "1X " + "ABC Brand Drink \t\t\t\t " + price + "\n" + "2X" +
"BCD Drink that has a longer name \t\t" + price;
我的问题是,有没有办法让我的价格在不使用所有“\t”转义序列的情况下垂直对齐?我不知道会以编程方式生成多少个“\t”来使用文本,所以我不知道如何衡量#。
这是我正在努力的示例输出: https ://imgur.com/a/kE0HJY6
我正在尝试在 HelloSign API 模板中使用它来填充自定义文本字段。
更新:到目前为止,我按照评论中的建议使用了 String.PadRight 属性,它确实有效,但价格仍未完全一致。这是当前结果的图片:https ://imgur.com/a/ZdaTqaW 。以下是我使用的代码:
ArrayList al = new ArrayList();
string prodName = "Try out product A and product B2";
string price = "$620";
string quantity = "1X";
Product a = new Product(prodName, price, quantity);
al.Add(a);
string prodName2 = "Out product A and product Basdasddddddasd";
string price2 = "$650";
string quantity2 = "123X";
al.Add(new Product(prodName2, price2, quantity2));
string str = "";
string abs = "";
int nam, quan = 0;
int asdsd = 0;
foreach (Product p in al)
{
abs = "";
nam = p.ProdName.Length;
quan = p.ProdQuantity.Length;
abs += p.ProdQuantity + " " + p.ProdName;
//if ((nam + quan) % 2 == 0)
//{
// asdsd = (175 - (nam + quan));
//}
//else
//{
// asdsd = (175 - (nam + quan) - 1);
//}
asdsd = (175 - (nam + quan));
str += abs.PadRight(asdsd) + p.ProdPrice + "\n\n";
请忽略变量的名称,我会在一切完成后更改它们。