私は一晩中この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:-)