2012-04-17 3 views
0

Я работаю над программой, которая предоставляет мне входную информацию о лодке и добавляет эту информацию в список. единственное, что появится в списке, - это имя лодки. Мне нужно знать, как отображать всю информацию из других текстовых полей, таких как длина, размер паруса и движки в окне сообщений. Любая помощь приветствуется.Отображение множественной информации в ящике сообщений из списка

public partial class Form1 : Form 
{ 
    ArrayList Home; 
    public Form1() 
    { 
     InitializeComponent(); 
     Home = new ArrayList(); 

    } 

    private void btnAddApartment_Click(object sender, EventArgs e) 
    { 
     //instantiate appartment and add it to arraylist 
     try 
     { 
      Apartment anApartment = new Apartment(txtID.Text, txtAddress.Text, int.Parse(txtYearBuilt.Text), int.Parse(txtBedrooms.Text), 
       double.Parse(txtSquareFootage.Text), double.Parse(txtPrice.Text), txtFurnished.Text); 
      Home.Add(anApartment); 
      ClearText(this); 
     } 
     catch (Exception) 
     { 
      MessageBox.Show("Make sure you entered everything correctly!", "Error", MessageBoxButtons.OK); 
     }    

    } 

    private void btnAddHouse_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      House aHouse=new House(txtID.Text, txtAddress.Text, int.Parse(txtYearBuilt.Text), int.Parse(txtBedrooms.Text), 
       double.Parse(txtSquareFootage.Text), double.Parse(txtPrice.Text),int.Parse(txtGarageCapacity.Text)); 
      Home.Add(aHouse); 
      AddHouseToListBox(); 
      ClearText(this); 
     } 
     catch (Exception) 
     { 
      MessageBox.Show("Make sure you entered everything correctly!", "Error", MessageBoxButtons.OK); 
     } 
    } 

    private void ClearText(Control controls) 
    { 
     foreach (Control control in controls.Controls) 
     { 
      if (control is TextBox) 
      { 
       ((TextBox)control).Clear(); 
      } 
     } 
    } 

    private void AddHouseToListBox() 
    { 
     lstHouse.Items.Clear(); 
     foreach (House person in Home) 
     { 
      lstHouse.Items.Add(person.GetAddress()); 
     } 
    } 

    private void AddApartmentToListBox() 
    { 
     lstApartment.Items.Clear(); 
     foreach (Apartment persons in Home) 
     { 
      lstApartment.Items.Add(persons.GetAddress()); 
     } 
    } 
+2

Можете ли вы показать нам код, который вы в настоящее время. Похоже, вам нужно полностью заполнить ListBoxItem, но код нужно обязательно, чтобы быть уверенным –

+0

Я просто поместил код –

+0

Ничего себе, код полностью отличается от того, что вопрос (дома и апартаменты против лодок и парусных размеров) , В любом случае, чтобы более непосредственно ответить на вопрос, что такое код для «Apartment.GetAddress()»? Если вы действительно хотите сбросить весь адрес в один столбец ListBox (по сравнению с несколькими столбцами в ListView, как и в моем ответе), проблема возникает в форматировании строки в Apartment.GetAddress(). Скорее всего, вы включаете CR, LF или оба. – GalacticJello

ответ

1

Если вы говорите, что вы хотите отобразить несколько столбцов данных в ListBox, то вам следует рассмотреть вопрос о переходе на ListView.

Вы бы затем добавить другие значения столбцов, используя код, подобный этому:

Добавить в ListView управления в форму.

A AM если у вас есть 4 текстовых полей с именами txtBoatName, txtLength, txtSailSize, txtEngines

// You can either set the columns and view in code like below, or use 
// the Form designer in Visual Studio to set them. If you set them in code, 
// place the following in Form.Load 

listView1.View = View.Details; 

listView1.Columns.Add("Boat Name", -2, HorizontalAlignment.Left); 
listView1.Columns.Add("Length", -2, HorizontalAlignment.Left); 
listView1.Columns.Add("Sail Size", -2, HorizontalAlignment.Left); 
listView1.Columns.Add("Engines", -2, HorizontalAlignment.Center); 

// When you want to add a boat to the ListView, use code like the following: 

ListViewItem item1 = new ListViewItem(txtBoatName.Text,0); 
item1.SubItems.Add(txtLength.Text); 
item1.SubItems.Add(txtSailSize.Text); 
item1.SubItems.Add(txtEngines.Text); 

listView1.Items.Add(item1); 
Смежные вопросы