我想将几个字符串根据指定的长度左对齐之后再将它们连接到一个字符串strRecord中,然后将strRecord添加到ArrayList数组stu_record中(stu_record.Add(strRecord);)。最后将stu_record绑定到ListBox,Stu_Info中。但编译执行之后跟不左对齐时一样。但我用一个TextBox,tb就得行,为什么在ListBox中就不行呢??private void BindData()
{
/*取出相应院系、专业、班级的学生记录*/
Teaching tch=new Teaching();
SqlDataReader dr;
SqlParameter[] prams=new SqlParameter[3];
prams[0]=new SqlParameter("@stu_department",SqlDbType.Char,40);
prams[0].Value=stu_department.SelectedItem.Text;
prams[1]=new SqlParameter("@stu_profession",SqlDbType.Char,40);
prams[1].Value=stu_profession.SelectedItem.Text;
prams[2]=new SqlParameter("@stu_class",SqlDbType.Char,10);
prams[2].Value=stu_class.SelectedItem.Text;
tch.RunSelectProc("SP_SelectStuInfoWith",prams,out dr); ArrayList stu_record=new ArrayList();
while(dr.Read())
{
string strRecord="";
strRecord+=(dr["stu_ID"].ToString().Trim()).PadRight(11);//string.PadRight(int,char)左对齐
strRecord+=(dr["stu_name"].ToString().Trim()).PadRight(4);
strRecord+=(dr["stu_roleID"].ToString().Trim()).PadRight(2);
strRecord+=(dr["stu_role3"].ToString().Trim()).PadRight(4);
strRecord+=(dr["stu_role4"].ToString().Trim()).PadRight(4);
strRecord+=(dr["stu_role5"].ToString().Trim()).PadRight(4);
strRecord+=(dr["stu_role6"].ToString().Trim()).PadRight(4);
strRecord+=(dr["stu_role7"].ToString().Trim()).PadRight(4);
strRecord+=(dr["stu_role8"].ToString().Trim()).PadRight(4);
strRecord+=(dr["stu_role9"].ToString().Trim()).PadRight(4); stu_record.Add(strRecord);     tb.Text=strRecord;
}
dr.Close(); Stu_Info.DataSource=stu_record;
Stu_Info.DataBind();
}

解决方案 »

  1.   

    是用string.PadRight(int i,char c)这个方法不吗?我把以上代码改为如下,还是不行。
    strRecord+=(dr["stu_ID"].ToString().Trim()).PadRight(11,' ');//string.PadRight(int,char)左对齐
    strRecord+=(dr["stu_name"].ToString().Trim()).PadRight(4,' ');
    strRecord+=(dr["stu_roleID"].ToString().Trim()).PadRight(2,' ');
    strRecord+=(dr["stu_role3"].ToString().Trim()).PadRight(4,' ');
    strRecord+=(dr["stu_role4"].ToString().Trim()).PadRight(4,' ');
    strRecord+=(dr["stu_role5"].ToString().Trim()).PadRight(4,' ');
    strRecord+=(dr["stu_role6"].ToString().Trim()).PadRight(4,' ');
    strRecord+=(dr["stu_role7"].ToString().Trim()).PadRight(4,' ');
    strRecord+=(dr["stu_role8"].ToString().Trim()).PadRight(4,' ');
    strRecord+=(dr["stu_role9"].ToString().Trim()).PadRight(4,' ');
      

  2.   

    用全角的空格就可以了
    dr["stu_role9"].ToString().Trim()).PadRight(4,' ').Replace(" "," ");
    注意:第二个要用全角的空格
      

  3.   

    ListBox对于系统的空格会自动删除的