0

私は、ユーザーが家またはアパートの情報を入力する必要があるプログラムを書いています。物件 ID、住所、築年数、寝室、面積、価格に関する情報を入力します。完了したら、「家具付き」の「はい」または「いいえ」を入力するか (これはアパートに適用されます)、またはガレージ容量の数値を入力できます (これは家に適用されます)。このすべての情報を列に表示する DisplayInfo() というメソッドがあります。このプログラムには、下部に 2 つのリストボックスがあり、1 つはアパート用、もう 1 つは家用です。また、家を追加するボタンとアパートを追加するボタンの 2 つのボタンがあります。このボタンは、アドレスをそれぞれのリストボックスに追加します。私が抱えている問題は、ディスプレイと呼ばれる最後のボタンで、選択した家またはアパートは、DisplayInfo() を使用してすべての情報を表示するメッセージ ボックスに表示する必要があります。これは私が今持っているものです

これは DisplayInfo() メソッドです

        public virtual string DisplayInfo()
    {
        return string.Format("Property ID: {0}\nProperty Address: {1}\nYear Built: {2}\nNumber of Bedrooms: {3}\nSquare Footage: {4}\nPrice: {5}", GetID(),
            GetAddress(), GetYearBuilt(), GetBedrooms(), GetSquareFootage(), GetPrice());

これはメッセージボックスを表示するために持っているもので、ユーザーが入力した各家またはアパートを異なるメッセージボックスに表示するだけです。

         foreach (Property_Dwelling property in Home)
        {
            MessageBox.Show(property.DisplayInfo(), property.GetType().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        foreach (Property_Dwelling property in Home)
        {
            MessageBox.Show(property.DisplayInfo(), property.GetType().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
4

2 に答える 2

0

つまり、家の周りで for each を実行しているため (それはクラスですか?)、すべての情報が表示されているため、すべての家を表示しています。

最初に家の中に表示したいアイテムを見つけてから、そのデータのみを表示する必要があります。

于 2012-04-18T16:45:54.007 に答える
0

編集:コメントに基づく新しいコード

foreach (Property_Dwelling property in Home)
{
    //Only displays the messagebox if the address of the property is the same as the text displayed in the listbox
    if(property.GetAddress() == myListBox.Text)
    {
        MessageBox.Show(property.DisplayInfo(), property.GetType().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
}

ただし、情報を表示する前に、アイテムが選択されているかどうかを確認することをお勧めします。

それはあなたのために働きますか?

于 2012-04-18T16:40:20.827 に答える