Общедоступная строка переопределения toString, ArrayList и Listbox выводятся в нескольких строках?

Я всю ночь боролся с этой проблемой С#.

У меня есть переопределение ToString(), которое работает нормально, и я могу поместить свои данные в ListBox. Но так как данные очень длинные, с кучей классов вывод становится длинным. Я хотел иметь возможность разбивать вывод ListBox на несколько строк.

Вот переопределение в файле класса:

//ToString
public override string ToString()
{
    return  "Name " + firstName + lastName + ". Nationality " + nationality + ". Lives in " + address + " " + zipCode + " " + city + " " + country + "."//
        + " Height is " + height + " meters. Hair color is " + hairColor + " and eye color is " + eyeColor + ". Specialmarkings: "//
        + specialMark + ". Is associated with " + association + ". Codename is " + codeName + "Photo (filename): " + photo;

}

Вот индексный код:

public partial class Index : System.Web.UI.Page
{
    static ArrayList personarraylist;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            personarraylist = new ArrayList();
        }
    }

    protected void ButtonCreate_Click(object sender, EventArgs e)
    {
        //create new object
        Person p = new Person(TextBox1FirstName.Text, TextBox2LastName.Text, TextBox3Nation.Text, TextBox4Address.Text, //
            TextBox5City.Text, TextBox7Country.Text, //
            TextBox10HairColor.Text, TextBox11EyeColor.Text, TextBox12SpecialMark.Text, TextBox13Asso.Text, TextBox14Codename.Text, TextBox15Photo.Text, //
            Convert.ToDouble(TextBox9Height.Text), Convert.ToInt32(TextBox6ZipCode.Text), Convert.ToInt32(TextBox8Pass.Text));
        //add object to arraylist
        personarraylist.Add(p);
    }

    protected void ButtonShow_Click(object sender, EventArgs e)
    {
        //clear list box
        ListBox1.Items.Clear();

        //loop through Arraylist
        for (int i = 0; i < personarraylist.Count; i++)
        {
            ListBox1.Items.Add(personarraylist[i].ToString());
            ListBox1.Items.Add("");
            TextBox1.Text = "";
        }
    }
}

Можно ли разбить вывод на несколько строк в ListBox? Я пытался ввести некоторые html-разрывные теги в возврат переопределения, но они были удалены, да, это веб-приложение.

Спасибо заранее за ваше время. PS Я новичок в C# (Студент), так что будьте добры ;)

ОБНОВЛЕНИЕ: Еще раз всем привет, спасибо за помощь, я уже пробовал с Environment.Newline и другими решениями, но они, кажется, упускаются из виду при отображении текста в ListBox. Я вижу точки останова в отделенном коде, но в браузере список по-прежнему держит все это в одной строке. Поэтому я решил вместо этого использовать TextBox, который автоматически разбивает текст на то место, которое я указываю.

//loop through Arraylist
        for (int i = 0; i < personarraylist.Count; i++)
        {
            TextBox1.Text += personarraylist[i].ToString();
        }

Еще раз спс за помощь :-)


person Hasan    schedule 09.03.2013    source источник
comment
Попробуйте \r\n в разных точках вашей строки. Я думаю, это сработает   -  person Prescott    schedule 10.03.2013
comment
Попробуйте Environment.NewLine там, где вы хотите. Надеюсь, это должно помочь. Хотя я думаю, что это будет выглядеть странно в ListBox.   -  person krillgar    schedule 10.03.2013
comment
Я даже не знал, что HTML ListBox могут отображать многострочные записи.   -  person Chris Sinclair    schedule 10.03.2013


Ответы (1)


Вы можете использовать Environment.NewLine или просто "\n" для создания нескольких строк. текста.

Если это не сработает, попробуйте использовать DataList управление:

<asp:DataList id="myDataList" runat="server">
    <ItemTemplate>
        Line 1
        <br />
        Line 2
    </ItemTemplate>
</asp:DataList>
person p.s.w.g    schedule 10.03.2013