2012-04-18 19 views
0

私は、ユーザーが自分の家に関するデータを入力する必要があるプログラムのコードを書いています。彼らには2つの選択肢があります。彼らは自宅やアパートについての情報を入力することができます。彼らは、物件ID、住所、寝室、年、建造物、価格、平方フィートなどのデータを入力し、2つの別々のテキストボックスに、家具付き(これはマンションオプション用)の情報を入力するか、家のオプションの場合)。 6つのパラメータは基本クラスに適用され、家具またはガレージの容量はアパートメントまたは家の2つのサブクラスです。ユーザーが「アパートを追加」または「家を追加」ボタンをクリックすると、住所はアパートメントリストボックスまたはホームリストボックスのいずれかに移動する必要があります。これは私がぶつかるところです。個々のデータを複数のリストボックスに追加しますか?

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()); 
    } 
} 
+0

asp.net?シルバーライト? wpf? winforms? –

+0

C#windowsフォームアプリケーション –

+0

タイトルに「C#」などのプレフィックスを付けないでください。それがタグのためのものです。 –

答えて

1

はあなたが

lstApartment.Items.Add(anApartment.GetAddress()); 

としてAddApartmentToListBoxを置き換えることができ、すべての時間をクリアし、リストボックスに追加するのではなく、またbtnAddApartment_Clickに

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); 
    AddApartmentToListBox(); 
    ClearText(this); 
} 
catch (Exception) 
{ 
    MessageBox.Show("Make sure you entered everything correctly!", "Error", MessageBoxButtons.OK); 
}    

}

AddApartmentToListBoxを呼び出す必要がありますAddHouseToListBox

lstHouse.Items.Add(aHouse.GetAddress()); 
関連する問題