如何实现如下的显示格式?

sjyzhxw 2012-09-14 06:44:01
检查网络连接 OK
检查系统完整性 OK
检查服务器当前状态 OK

让右边的OK都对齐?
...全文
215 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
超级大咸鱼 2012-09-18
  • 打赏
  • 举报
回复

private void button1_Click(object sender, EventArgs e)
{
//用于存储最长的长度
int MaxL = 0;
string[] strList = new string[] { "检查网络连接", "检查系统完整性", "检查服务器当前状态" };
//循环取最长的长度(此循环待改善)
for (int i = 0; i < strList.Length; i++)
{
try
{
if (strList[i].Length > strList[i + 1].Length)
{
MaxL = strList[i].Length;
}
else
{
MaxL = strList[i + 1].Length;
}
}catch { }
}
//循环增加固定的空格
foreach (string str in strList)
{
string space = "";
//此处的‘5’可以控制OK到前面的字符之间的距离
for (int i = 0; i < MaxL - str.Length + 5; i++)
{
space += " ";
}
textBox1.Text += "\r\n" + str + space + "OK";
}
}

输出:
检查网络连接 OK
检查系统完整性 OK
检查服务器当前状态 OK
超级大咸鱼 2012-09-18
  • 打赏
  • 举报
回复
方法不求笨和聪明,只求能有效而效率的达到所要的效果,补空格并不是不可取的措施,但这绝对是最后手段。 问下LZ一定是要用一个Textbox控件的么。不能在后面附加个Label.
鲸碳耗 2012-09-18
  • 打赏
  • 举报
回复

void Main()
{
string a = "AAAAA";
string b = "测试字符串";
string c = "For测试";
richTextBox1.Text = "";
BQ(a);
BQ(b);
BQ(c);
}

void BQ(string str)
{
richTextBox1.Text += str;
foreach (char l in str)
{
Regex rex = new Regex("[a-z0-9A-Z_]+");
Match ma = rex.Match(l.ToString());
if (ma.Success)
{
richTextBox1.Text += " ";
}
}
richTextBox1.Text += " "+str.Length + "\n";
}


输出:
AAAAA 5
测试字符串 5
For测试 5
sjyzhxw 2012-09-18
  • 打赏
  • 举报
回复
应该有好的方法吧,这样也太笨了

[Quote=引用 13 楼 的回复:]

你固定补当然不对了
根据你的字符串的长度补一定的空格
[/Quote]
sjyzhxw 2012-09-15
  • 打赏
  • 举报
回复
sjyzhxw 2012-09-15
  • 打赏
  • 举报
回复
不行啊
比如
"aaa".PadRight(10)+"OK";
"你你你".PadRight(10)+"OK";

上一个占用3格,下一个占用6格,但是后面补的空格都是7个,结果下面的OK就靠右了



[Quote=引用 9 楼 的回复:]

PadRight应该是可以的,
你的显示不会是在网页中的吧?
[/Quote]
sjyzhxw 2012-09-15
  • 打赏
  • 举报
回复
孟子E章 2012-09-15
  • 打赏
  • 举报
回复
PadRight应该是可以的,
你的显示不会是在网页中的吧?
sjyzhxw 2012-09-15
  • 打赏
  • 举报
回复
还是不行。。控制台下可以,但是在textbox里面显示还是不对。
中英文的问题啊。

[Quote=引用 6 楼 的回复:]

yourString.PadRight(总长)+"OK"
[/Quote]
sjyzhxw 2012-09-15
  • 打赏
  • 举报
回复
谢谢大神!!

[Quote=引用 6 楼 的回复:]

yourString.PadRight(总长)+"OK"
[/Quote]
Conmajia 2012-09-15
  • 打赏
  • 举报
回复
yourString.PadRight(总长)+"OK"
缭绕飘渺 2012-09-15
  • 打赏
  • 举报
回复
你固定补当然不对了
根据你的字符串的长度补一定的空格
iyomumx 2012-09-14
  • 打赏
  • 举报
回复
用\t不行吗
西川痱子 2012-09-14
  • 打赏
  • 举报
回复
检查网络连接 OK
检查系统完整性 OK
检查服务器当前状态 OK

你是想弄成这样?
sjyzhxw 2012-09-14
  • 打赏
  • 举报
回复


[Quote=引用 2 楼 的回复:]

你用什么显示的?
[/Quote]

想用一个multiple line 的textbox,
在里面把字符串串接起来。
用格式化输出也不行,汉字和英文字母大小不同,但是都占一个字符的位置啊。
angelshuimo 2012-09-14
  • 打赏
  • 举报
回复
你用什么显示的?
EthanJiang0827 2012-09-14
  • 打赏
  • 举报
回复
控件居右?

110,592

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧