1

私は一晩中このC#の問題に苦しんでいます。

オーバーライドToString()があり、これは正常に機能しており、データをリストボックスに出力できます。ただし、データが非常に長く、クラスが多数あるため、出力が長くなります。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ブレークタグを挿入しようとしましたが、これらは削除されます。これはWebアプリケーションです。

よろしくお願いします。PS私はC#(学生)の初心者なので、親切にしてください;)

更新: こんにちは。助けてください。Environment.Newlineやその他のソリューションを試しましたが、リストボックスにテキストを表示するときに見落とされているようです。コードビハインドでブレークポイントを確認できますが、ブラウザーでは、リストボックスはすべてを1行に保持します。そこで、代わりにTextBoxを使用することにしました。これにより、テキストが自動的に分割され、指摘します。

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

再び助けを求めてthx:-)

4

1 に答える 1

1

Environment.NewLineまたはを使用"\n"して、複数行のテキストを作成できます。

それでも問題が解決しない場合は、DataListコントロールを使用してみてください。

<asp:DataList id="myDataList" runat="server">
    <ItemTemplate>
        Line 1
        <br />
        Line 2
    </ItemTemplate>
</asp:DataList>
于 2013-03-10T00:00:46.993 に答える